繁体   English   中英

使用str.split在熊猫中拆分列并保留值

[英]Split Columns in pandas with str.split and keep values

所以我在这里遇到了一个问题:

我有一个熊猫数据框,如下所示:

ID Name    Value
0  Peter   21,2
1  Frank   24
2  Tom     23,21/23,60 
3  Ismael  21,2/ 21,54
4  Joe     23,1

and so on...

我要尝试的是用斜杠(/)分隔“值”列,但保留所有不具有这种模式的值。

像这儿:

ID Name    Value
0  Peter   21,2
1  Frank   24
2  Tom     23,21
3  Ismael  21,2
4  Joe     23,1

我该如何实现? 我尝试了str.split方法,但没有给我想要的解决方案。 而是返回NaN,如下所示。

My Code: df['Value']=df['value'].str.split('/', expand=True)[0]

Returns:

ID Name    Value
0  Peter   NaN
1  Frank   NaN
2  Tom     23,21
3  Ismael  21,2
4  Joe     Nan

我需要的只是在'/'出现之前的第一个值。

感谢任何帮助!

删除expand=True返回列表,并添加str[0]选择第一个值:

df['Value'] = df['Value'].str.split('/').str[0]
print (df)
   ID    Name  Value
0   0   Peter   21,2
1   1   Frank     24
2   2     Tom  23,21
3   3  Ismael   21,2
4   4     Joe   23,1

如果性能很重要,请使用清单理解:

df['Value'] = [x.split('/')[0] for x in df['Value']]

用正则表达式pandas.Series.str.replace

df.assign(Value=df.Value.str.replace('/.*', ''))

   ID    Name  Value
0   0   Peter   21,2
1   1   Frank     24
2   2     Tom  23,21
3   3  Ismael   21,2
4   4     Joe   23,1

(可选)您可以将结果直接分配回数据框

df['Value'] = df.Value.str.replace('/.*', '')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM