【发布时间】:2021-10-07 04:45:00
【问题描述】:
我正在尝试将列表从一个数据框列转换为行,但不确定如何在 python 中有效地做到这一点?
我的实际数据有数千行和可变长度列表(在Specs 列中,但为了简化,我将使用下面的示例。
import pandas as pd
data = [{'Type': 'A', 'Specs': [['a1', 50], ['a2', 14]]},
{'Type': 'B', 'Specs': [['b1', 20], ['b2', 25], ['b3', 15], ['b4', 10]]},
{'Type': 'C', 'Specs': [['c1', 32]]} ]
df = pd.DataFrame(data)
最终的结果应该和下面数据框的输出等价
data_out= [{'Type': 'A', 'model':'a1', 'qty': 50},
{'Type': 'A', 'model':'a2', 'qty': 14},
{'Type': 'B', 'model':'b1', 'qty': 20},
{'Type': 'B', 'model':'b2', 'qty': 25},
{'Type': 'B', 'model':'b3', 'qty': 15},
{'Type': 'B', 'model':'b4', 'qty': 10},
{'Type': 'C', 'model':'c1', 'qty': 32}]
df_out = pd.DataFrame(data_out)
我尝试将apply 与将每个行列表/值转换为数据框的函数一起使用,并且对如何为每行返回数据框并使用新行扩展新数据框感到困惑。如果我走错了路,请告诉我,在大数据上获得所需数据帧输出的最有效方法是什么?谢谢
def convert_list(my_list):
my_df = pd.DataFrame(pv_list, columns=['model', 'qty'])
return my_df
df[['model', 'qty']] = df['Specs'].apply(convert_list)
【问题讨论】:
标签: python pandas list dataframe