【发布时间】:2021-05-05 03:08:49
【问题描述】:
假设我有一个如下的数据框:
d = {'col1': ['hello','nice to meet you', 'i like pudding, apples, bananas' ], 'col2': ['good','nice,cool','awesome']}
df = pd.DataFrame(data=d)
只要数据单元格中有逗号,我想将字符串子集化为逗号之前的所有内容。例如
df.iloc[2,0] #should read "i like pudding"
df.iloc[1,1] #should read "nice"
我已经尝试过 np.where() 并对字符串进行子集化,但是在我的真实数据框中,由于多次出现相同的字符串,这变得很复杂。有没有一种简单的方法可以遍历所有单元格,检查逗号,并将该字符串子集设置为仅包含第一个逗号之前的字符?
【问题讨论】:
-
df.replace(regex={r'\,': ''})? -
@wwnde 我认为这只是消除了逗号。我想子集整个字符串只取第一个逗号之前的内容
-
好的,我们试试
df=df.apply(lambda x: x.str.split('\,').str[0]) -
@wwnde 它对你有用吗?我的仍在返回原始数据帧
-
试试
df=df.apply(lambda x: x.str.split('\,').str[0])
标签: python pandas dataframe substring