簡體   English   中英

如何在python中將一系列列表轉換為數據框?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM