Dataframe 中的字符串操作
String Manipulation in Dataframe
大家好,我有一个关于 pandas 数据帧中的字符串操作的快速问题。
假设我们有 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(", ")
您可以执行以下操作:
df['City']=df['City'].apply(lambda x: x[2:-2])
df['State']=df['State'].apply(lambda x: x[2:-2])
请使用正则表达式替换所有非字母数字字符
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
大家好,我有一个关于 pandas 数据帧中的字符串操作的快速问题。
假设我们有 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(", ")
您可以执行以下操作:
df['City']=df['City'].apply(lambda x: x[2:-2])
df['State']=df['State'].apply(lambda x: x[2:-2])
请使用正则表达式替换所有非字母数字字符
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