【发布时间】:2021-08-20 05:38:43
【问题描述】:
我在 Python Pandas 中有如下数据框:
col1
--------
abc
aaa/bcd
ghi/jke/zpo
rtv
我想删除“/”之后的每个值。因此,我需要以下内容:
col1
--------
abc
aaa
ghi
rtv
如何在 Python Pandas 中做到这一点?
【问题讨论】:
我在 Python Pandas 中有如下数据框:
col1
--------
abc
aaa/bcd
ghi/jke/zpo
rtv
我想删除“/”之后的每个值。因此,我需要以下内容:
col1
--------
abc
aaa
ghi
rtv
如何在 Python Pandas 中做到这一点?
【问题讨论】:
你可以使用.str.split:
df["col1"] = df["col1"].str.split("/").str[0]
print(df)
打印:
col1
0 abc
1 aaa
2 ghi
3 rtv
【讨论】:
.str.split("/") 会将ghi/jke/zpo 拆分为['ghi', 'jke', 'zpo'] 所以我们只需要第一个元素 - 我们使用[0]
使用.str.split() 和expand 选项,您只需获取结果数据框中的第一列:
>>> df['col1'].str.split('/', expand=True)[0]
0 abc
1 aaa
2 ghi
3 rtv
Name: 0, dtype: object
【讨论】:
根据 Andrej 和 Cimbali 给出的答案,您还可以在 map() 中使用 lambda 函数,如下所示。用“/”分割列的每个元素,得到第一个元素:
df["col1"].map(lambda x: x.split("/")[0])
【讨论】: