如何填充列表中的值并将其转换为数据帧?

我想对我之前的问题进行一些修改:

从列和数据框迭代条件到列表转换(熊猫)

数据框是:

 Item   Quantity  Price     Photo1     Photo2    Photo3    Photo4

A        2         30      A1.jpg      A2.jpg 
B        4         10      B1.jpg      B2.jpg    B3.jpg    B4.jpg
C        5         15      C1.jpg

我试过:

df1 = df.reindex(['Item','Quantity','Price','Photo1','Photo2','Photo3','Photo4','I','Q','P','PH',] axis=1)
df1['I'] = df1['I'].fillna['I']
df1['Q'] = df1['Q'].fillna['Q']
df1['P'] = df1['P'].fillna['P']
df1['PH'] = df1['PH'].fillna['PH']
vals = [['I','Item'],['Q','Quantity'],['P','Price']]

photo_df = df1.filter(like='Photo')
photo_df = photo_df.transform(lambda x: np.where(x.isnull(), x, x.name)) 
photo_df = photo_df.fillna('')

vals = [y for x in photo_df.to_numpy() 
         for y in vals[:3] + [['PH',z] for z in x[x!='']] ]

vals 返回:

[['I', 'Item'], ['Q', 'Quantity'], ['P', 'Price'], ['PH', 'Photo1'], ['PH', 'Photo2'], 
['I', 'Item'], ['Q', 'Quantity'], ['P', 'Price'], ['PH', 'Photo1'], ['PH', 'Photo2'], 
['PH', 'Photo3'], ['PH', 'Photo4'], ['I', 'Item'], ['Q', 'Quantity'], ['P', 'Price'], ['PH', 'Photo1']]

现在我想填写上一个数据框中的值:

我试过:

L = [df1.loc[:, x].set_axis(range(len(x)), axis=1) for x in vals]

这以以下格式返回:

[I,A,I,B,I,C,Q,2,Q,4,Q,5....................]

我希望 L 为:

[I,A,Q,2,P,30,PH,A1.jpg,PH,A2.jpg,I,B..............]

预期数据框:

I       A
Q       2
P       4
PH      A1.jpg
PH      A2.jpg
I       B
Q       4
P       10 
PH      B1.jpg
PH      B2.jpg
PH      B3.jpg
PH      B4.jpg
I       C
Q       5
P       15
PH      C1.jpg

以上是如何填充列表中的值并将其转换为数据帧?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>