如何填充列表中的值并将其转换为数据帧?
我想对我之前的问题进行一些修改:
从列和数据框迭代条件到列表转换(熊猫)
数据框是:
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