簡體   English   中英

如何在熊貓中將具有常規格式的一個字符串列拆分為多個列

[英]How to split one string column with regular format to multiple columns in Pandas

如果我有一個像這樣的數據框:

id  s             scene
1   a   kitchen: 0.297, living: 0.515, degree: A
2   b   kitchen: 0.401, study: 0.005, degree: A
3   c   study: 0.913, degree: B
4   d   living: 0.515, degree: B
5   e   others: 0.1, degree: C

如何通過Pandas獲得新的數據框。

到目前為止,我已經嘗試過df[['id', 's', 'kitchen', 'living', 'study', 'others', 'degree']] = df['scene'].str.split(',', expand=True)

id   s   kitchen living  study   others    degree
1    a    0.297   0.515   0       0           A 
2    b    0.401   0       0.005   0           A
3    c    0       0       0.913   0           B
4    d    0       0.515   0       0           B
5    e    0       0       0       0.1         C

您可以

In [763]: dff = pd.DataFrame(
              dict(y.split(': ') for y in x.split(', ')) for x in df.scene).fillna(0)

In [764]: dff
Out[764]:
  degree kitchen living others  study
0      A   0.297  0.515      0      0
1      A   0.401      0      0  0.005
2      B       0      0      0  0.913
3      B       0  0.515      0      0
4      C       0      0    0.1      0

然后join

In [766]: df.join(dff)
Out[766]:
   id  s                                     scene degree kitchen living  \
0   1  a  kitchen: 0.297, living: 0.515, degree: A      A   0.297  0.515
1   2  b   kitchen: 0.401, study: 0.005, degree: A      A   0.401      0
2   3  c                   study: 0.913, degree: B      B       0      0
3   4  d                  living: 0.515, degree: B      B       0  0.515
4   5  e                    others: 0.1, degree: C      C       0      0

  others  study
0      0      0
1      0  0.005
2      0  0.913
3      0      0
4    0.1      0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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