laz*_*zer 2 python dataframe pandas
所以我在这里遇到了一个问题:
我有一个如下所示的 Pandas 数据框:
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...
Run Code Online (Sandbox Code Playgroud)
我想要的是通过斜线(/)拆分“值”列,但保留所有没有这种模式的值。
像这儿:
ID Name Value
0 Peter 21,2
1 Frank 24
2 Tom 23,21
3 Ismael 21,2
4 Joe 23,1
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我尝试了 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
Run Code Online (Sandbox Code Playgroud)
我所需要的只是'/' 到来之前的第一个值。
感谢任何形式的帮助!
删除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
Run Code Online (Sandbox Code Playgroud)
如果性能很重要,请使用列表理解:
df['Value'] = [x.split('/')[0] for x in df['Value']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2960 次 |
| 最近记录: |