【发布时间】:2021-07-08 05:48:33
【问题描述】:
下面是我的数据框,其中有一列合并在一起,
PLUGS\nDESIGN\nGEAR
0 700\nDaewoo 8000 Gearless
1 300\nHyundai 4400 Gearless
2 600\nSTX 2600 Gearless
3 200\nB170 \nGeared
4 362 Wenchong 1700 Mk II \nGeared
5 252\nRichMax 1550 Gearless
6 220\nCV 1100 Plus \nGeared
7 232\nOrskov Mk VII Gearless
8 119\nKouan 1000 Gearless
9 100\nHanjin 700 Gearless
我想将这些列拆分为三个不同的列,即 PLUGS、DESIGN、GEAR。有没有办法做到这一点?
下面是我试过的代码:
new_df[['PLUGS', 'DESIGN', 'GEAR']] = new_df['PLUGS\nDESIGN\nGEAR'].str.split(' ')
print(new_df)
预期输出:
PLUGS DESIGN GEAR
0 700 Daewoo 8000 Gearless
1 300 Hyundai 4400 Gearless
2 600 STX 2600 Gearless
3 200 B170 Geared
4 362 Wenchong 1700 Mk II Geared
5 252 RichMax 1550 Gearless
6 220 CV 1100 Plus Geared
7 232 Orskov Mk VII Gearless
8 119 Kouan 1000 Gearless
9 100 Hanjin 700 Gearless
【问题讨论】:
-
您的原始 CSV 文件是什么?你是如何阅读文件的? @萨兰
-
我使用 camelot 从 pdf 中提取了这些信息
-
是否可以有原始文本而不是数据框?
-
df["PLUGS\nDESIGN\nGEAR"].str.extract(r"^(\d+)[\\n\s]+([^\\]+)[\\n\s]+(.+)$")是否在处理真实数据? -
@KarnKumar 很抱歉回复晚了......确实正则表达式似乎有效。感谢您的回答,+1。
标签: python pandas dataframe split