如何将数据帧列拆分为两部分,以便稍后将数据帧列中的值替换为拆分后的值。例如,我有一个像这样的数据框:
col1 col2
"abc" "A, BC"
"def" "AX, Z"
"pqr" "P, R"
"xyz" "X, YZ"
Run Code Online (Sandbox Code Playgroud)
我想在 之前提取值,并用提取的值替换该单元格。因此,输出应如下所示:
col1 col2
abc A
def AX
pqr P
xyz X
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样做:
df['col2'].apply(lambda x: x.split(',')[0])
Run Code Online (Sandbox Code Playgroud)
但它给了我错误。请建议我如何获得所需的输出。
在这种情况下,您可以使用 , 的str方法,该方法pandas将使用矢量化函数。它也会更快apply。
df.col2 = df.col2.str.split(', ').str[0]
>>> df
Out[]:
col1 col2
0 abc A
1 def AX
2 pqr P
3 xyz X
Run Code Online (Sandbox Code Playgroud)
要在Series包含字符串上使用它,您应该str在任何函数之前调用该属性。有关更多详细信息,请参阅文档。
在上述解决方案中,请注意.str.split(', ')替换split. 并.str[0]允许切片分裂的结果,而只是使用.str.split(', ')[0]将得到指数0 Series。
| 归档时间: |
|
| 查看次数: |
2137 次 |
| 最近记录: |