[英]pandas string split column lost
我正在嘗試在 Pandas 數據框中拆分一列(分隔符 ','),如下所示:
Index ID Note
0 0 NT,1.7,1.3,NT,1.3,NT,NT,1.3,1.3
1 1 NT,2.3,2.3,NT,NT,belegt,NT,m.E.,belegt,m.E.,1....
2 2 NT,1.3,1.3,1.3,1.3,NT,1.3,NT,1.3,NT,1.3,1.3,1....
3 3 NT,PR,NT,NT,PR,PR,NT,o.E.,PR,NT
4 4 belegt,NT,m.E.,NT,NT,NT,2.3,m.E.,2.3,1.7,beleg...
5 5 2.3,NT,1.7,m.E.,m.E.,1.3,m.E.,m.E.,1.7,m.E.,2....
6 6 NT,m.E.
7 7 m.E.,NT,NT,NT,NT,NT,NT,NT,m.E.,NT,NT,2.3
我用
split = new['Note'].str.split(',', expand=True)
並得到結果
0 1 2 3 4 5 6 7 8 9 ... 226 227 228 229 230 231 232 233 234 235
0 NT 1.7 1.3 NT 1.3 NT NT 1.3 1.3 None ... None None None None None None None None None None
1 NT 2.3 2.3 NT NT belegt NT m.E. belegt m.E. ... None None None None None None None None None None
2 NT 1.3 1.3 1.3 1.3 NT 1.3 NT 1.3 NT
問題是,在那之后“ID”列丟失了。 我試着用
split['Note'] = new['Note'].str.split(',', expand=True)
但是只有“,”之前的第一個字符串/數字在一個新列中,其他所有內容都不存在:
ID Note
0 0 NT
1 1 NT
2 2 NT
3 3 NT
4 4 belegt
5 5 2.3
6 6 NT
7 7 m.E.
8 8 belegt
9 9 belegt
非常感謝幫助,謝謝!
將pandas.concat
與pandas.DataFrame.pop
pandas.concat
使用:
df2 = df.pop("Note").str.split(",", expand=True)
df = pd.concat([df, df2], 1)
print(df)
輸出:
Index ID 0 1 2 3 4 5 6 7 8 \
0 0 0 NT 1.7 1.3 NT 1.3 NT NT 1.3 1.3
1 1 1 NT 2.3 2.3 NT NT belegt NT m.E. belegt
2 2 2 NT 1.3 1.3 1.3 1.3 NT 1.3 NT 1.3
3 3 3 NT PR NT NT PR PR NT o.E. PR
4 4 4 belegt NT m.E. NT NT NT 2.3 m.E. 2.3
5 5 5 2.3 NT 1.7 m.E. m.E. 1.3 m.E. m.E. 1.7
6 6 6 NT m.E. None None None None None None None
7 7 7 m.E. NT NT NT NT NT NT NT m.E.
9 10 11 12
0 None None None None
1 m.E. 1 None None
2 NT 1.3 1.3 1
3 NT None None None
4 1.7 beleg None None
5 m.E. 2 None None
6 None None None None
7 NT NT 2.3 None
如果除了要拆分的列之外只有一個額外的列,只需在split
后將其設置為 index 和 reset_index
df_split = df_new.set_index('ID')['Note'].str.split(',', expand=True).reset_index()
Out[1316]:
ID 0 1 2 3 4 5 6 7 8 9 \
0 0 NT 1.7 1.3 NT 1.3 NT NT 1.3 1.3 None
1 1 NT 2.3 2.3 NT NT belegt NT m.E. belegt m.E.
2 2 NT 1.3 1.3 1.3 1.3 NT 1.3 NT 1.3 NT
3 3 NT PR NT NT PR PR NT o.E. PR NT
4 4 belegt NT m.E. NT NT NT 2.3 m.E. 2.3 1.7
5 5 2.3 NT 1.7 m.E. m.E. 1.3 m.E. m.E. 1.7 m.E.
6 6 NT m.E. None None None None None None None None
7 7 m.E. NT NT NT NT NT NT NT m.E. NT
10 11 12
0 None None None
1 1 None None
2 1.3 1.3 1
3 None None None
4 beleg None None
5 2 None None
6 None None None
7 NT 2.3 None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.