【问题标题】:String Manipulation in Dataframe [closed]数据框中的字符串操作[关闭]
【发布时间】:2020-11-03 20:39:54
【问题描述】:

大家好,我有一个关于 pandas 数据框中的字符串操作的快速问题。

假设我们有 2 列如下所示:

问题:

如何只保留每个单元格的字符串部分并删除 [' ']

非常感谢您的帮助!我期待听到您的绝妙想法!

【问题讨论】:

  • ['AK']是字符串列表还是字符串"['AK']"
  • 你试过什么。如果您尝试解决此问题,请尝试发布,以便其他人可以想到更好的解决方案并在您的解决方案中更正。
  • @QuangHoang 是一个类似于字符串中的对象的列表。我在以前的一些项目中遇到过。认为这将是一个有趣的问题。
  • @DeepakKumar 我一定会这样做的!谢谢您的建议!以下所有三个解决方案都提供了很好的意见!

标签: python pandas string dataframe python-re


【解决方案1】:

请使用正则表达式替换所有非字母数字字符

print(df)

   State         City
0  ['AK']  ['Yakutat']
1  ['AK']   ['Apache']

解决方案

df=df.replace(regex='[^\w]',value='')

print(df)



 State     City
0    AK  Yakutat
1    AK   Apache

【讨论】:

  • 非常感谢您的帮助,这是一个绝妙的主意!
【解决方案2】:

取决于每个单元格中的值是带括号 "['AK']" 的字符串还是实际列表:['AK']

如果它们是两边都有括号的字符串,我们可以从两边去掉括号字符:

df["State"] = df["State"].str.strip("[]")
df["City"] = df["City"].str.strip("[]")

如果它们是列表,您可以用逗号将它们连接起来以将它们变成字符串

df["State"] = df["State"].str.join(", ")
df["City"] = df["City"].str.join(", ")

【讨论】:

  • 这也是个好主意。类似于第二个。太棒了!
【解决方案3】:

您可以执行以下操作:

df['City']=df['City'].apply(lambda x: x[2:-2])
df['State']=df['State'].apply(lambda x: x[2:-2])

【讨论】:

  • 这是一个绝妙的主意!从所有出色的 cmets 中学到了很多东西。我认为它会比正则表达式快一点。
猜你喜欢
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 2019-03-25
  • 1970-01-01
  • 2015-05-18
相关资源
最近更新 更多