Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过在字符串值中查找子字符串来更改列值_Python_Pandas_Substring_Pandas Apply - Fatal编程技术网

Python 通过在字符串值中查找子字符串来更改列值

Python 通过在字符串值中查找子字符串来更改列值,python,pandas,substring,pandas-apply,Python,Pandas,Substring,Pandas Apply,我正在尝试使用apply()更改单个列中的值。我的函数部分工作,但我被困在如何修复这另一半 数据列: 县名 河滨县 圣地亚哥县 旧金山县/市 我正试图摆脱“县”,所以只剩下县的名字。我成功地摆脱了“县”的职能,但我很难摆脱“县/市”从旧金山。 代码: 输出: CountyName Riverside San Diego San Francisco County/city 函数中的条件是否有问题?这是另一种方法。它与您提供的数据一起工作 import pandas as pd s = pd.S

我正在尝试使用apply()更改单个列中的值。我的函数部分工作,但我被困在如何修复这另一半

数据列:

县名
河滨县
圣地亚哥县
旧金山县/市

我正试图摆脱“县”,所以只剩下县的名字。我成功地摆脱了“县”的职能,但我很难摆脱“县/市”从旧金山。 代码:

输出:

CountyName
Riverside
San Diego
San Francisco County/city

函数中的条件是否有问题?

这是另一种方法。它与您提供的数据一起工作

import pandas as pd

s = pd.Series(['Riverside County', 'San Diego County', 'SanFrancisco County/city'])

res = s.apply(lambda x: ' '.join([w for w in x.split() if not 'County' in w]))

print(res)

# 0       Riverside
# 1       San Diego
# 2    SanFrancisco
# dtype: object

这是另一种方式。它与您提供的数据一起工作

import pandas as pd

s = pd.Series(['Riverside County', 'San Diego County', 'SanFrancisco County/city'])

res = s.apply(lambda x: ' '.join([w for w in x.split() if not 'County' in w]))

print(res)

# 0       Riverside
# 1       San Diego
# 2    SanFrancisco
# dtype: object

@jpp的回答是按照你要求的字面方式去做。但在这种情况下,我会使用和一些正则表达式一次性替换整个内容:

import pandas as pd

s = pd.Series(['Riverside County', 'San Diego County', 'SanFrancisco County/city'])

res = s.replace(' County(/city)?', '', regex=True)

@jpp的回答是按照你要求的字面方式去做。但在这种情况下,我会使用和一些正则表达式一次性替换整个内容:

import pandas as pd

s = pd.Series(['Riverside County', 'San Diego County', 'SanFrancisco County/city'])

res = s.replace(' County(/city)?', '', regex=True)

@jpp,用于将建议应用于整个专栏。不确定这是否是最好的方法,但它奏效了

lfd[“CountyName”]=pd.Series(lfd[“CountyName”])


@jpp,用于将建议应用于整个专栏。不确定这是否是最好的方法,但它奏效了

lfd[“CountyName”]=pd.Series(lfd[“CountyName”])


为什么要有一个if语句呢?如果字符串中没有“/city”,那么countyname.replace(“County/city”和“”)就不会做任何事情。我复制了您的代码和输入,效果很好。为什么要使用If语句呢?如果字符串中没有“/city”,那么countyname.replace(“County/city”和“”)就不会做任何事情。我复制了您的代码和输入,效果很好。