【问题标题】:Get rid of all commas from each cell of a pandas dataframe从 pandas 数据框的每个单元格中删除所有逗号
【发布时间】: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


【解决方案1】:

你需要用逗号分隔每个单元格,然后保留第一个字符串。

df = df.applymap(lambda x: x.split(',')[0])

【讨论】:

  • 这是否只用第一个逗号之前的字符替换每个单元格?或者它只是消除了逗号。
  • 修改答案不替换逗号,但保留逗号前的单词。您需要重新表述您的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
相关资源
最近更新 更多