[英]how to convert series of lists into dataframe in python?
我有以下格式的數據框
student marks
a [12,12,34]
b [34,35]
c [23,45,23]
我希望它轉換為如下所示
student marks_1 marks_2 marks_3
a 12 12 34
b 34 35 Nan
c 23 45 23
如何實現這一目標? 任何幫助請
使用由pop
提取的列marks
創建的join
new DataFrame
,轉換為列表並通過自定義lambda
函數對列使用rename
:
f = lambda x: 'marks_{}'.format(x + 1)
df = df.join(pd.DataFrame(df.pop('marks').values.tolist()).rename(columns=f))
print (df)
student marks_1 marks_2 marks_3
0 a 12 12 34.0
1 b 34 35 NaN
2 c 23 45 23.0
詳情:
print (pd.DataFrame(df.pop('marks').values.tolist()))
0 1 2
0 12 12 34.0
1 34 35 NaN
2 23 45 23.0
嘗試
dfr = pd.concat([df.student, df.marks.apply(lambda el: pd.Series(
el, index=['marks_{}'.format(i + 1) for i in range(len(el))]))], axis=1)
上面的代碼從標記中的每個元素創建一個索引,然后將結果與學生列連接起來,
輸出:
dfr
student marks 1 marks 2 marks 3
0 a 12.0 12.0 34.0
1 b 34.0 35.0 NaN
2 c 23.0 45.0 23.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.