如何使用 Pandas 在数据框中查找第二个逗号 (,) 并将其替换为 -?
How to find and replace second comma (,) with - in a dataframe using Pandas?
我有这样的数据框:
Name
Address
Anuj
Anuj,Sinha,BB
Sinha
Sinha,Anuj BB
在Adrress列中,我想将所有行中除第一个逗号之外的所有逗号(,)替换为-。
谁能给我建议可能的解决方案?
提供:
df.dtypes
Customer ID Int64
First_name-Last_name string
Address string
Phone string
Secondary_station string
Customer_disconnected string
如果最多有 2 个逗号,您可以使用这个简单的正则表达式:
df['Address'] = df['Address'].str.replace('(,.*),', r'-')
输出:
Name Address
0 Anuj Anuj,Sinha-BB
1 Sinha Sinha,Anuj BB
如果逗号可能超过2个,你可以这样做:
df['Address'] = df['Address'].str.split(',').apply(lambda x: x[0]+','+'-'.join(x[1:]))
或者,更高效:
splits = df['Address'].str.split(',', 1)
df['Address'] = splits.str[0]+','+splits.str[1].str.replace(',', '-')
您可以这样使用替换功能:
txt = "I like bananas"
x = txt.replace("bananas", "apples")
print(x)
会显示:
I like apples
对于您的数据框,您只需要以这种方式迭代思考您的值:
import pandas as pd
df = pd.DataFrame(
{
'name': ['Anuj', 'Sinha'],
'adresse': ['Anuj,Sinha,BB', 'Sinha,Anuj BB']
}
)
for colunm in df.columns:
for index, value in enumerate(df[colunm]):
df[colunm][index] = value.replace(',', '-')
print(df)
会显示:
name adresse
0 Anuj Anuj-Sinha-BB
1 Sinha Sinha-Anuj BB
我有这样的数据框:
Name | Address |
---|---|
Anuj | Anuj,Sinha,BB |
Sinha | Sinha,Anuj BB |
在Adrress列中,我想将所有行中除第一个逗号之外的所有逗号(,)替换为-。
谁能给我建议可能的解决方案?
提供:
df.dtypes
Customer ID Int64
First_name-Last_name string
Address string
Phone string
Secondary_station string
Customer_disconnected string
如果最多有 2 个逗号,您可以使用这个简单的正则表达式:
df['Address'] = df['Address'].str.replace('(,.*),', r'-')
输出:
Name Address
0 Anuj Anuj,Sinha-BB
1 Sinha Sinha,Anuj BB
如果逗号可能超过2个,你可以这样做:
df['Address'] = df['Address'].str.split(',').apply(lambda x: x[0]+','+'-'.join(x[1:]))
或者,更高效:
splits = df['Address'].str.split(',', 1)
df['Address'] = splits.str[0]+','+splits.str[1].str.replace(',', '-')
您可以这样使用替换功能:
txt = "I like bananas"
x = txt.replace("bananas", "apples")
print(x)
会显示:
I like apples
对于您的数据框,您只需要以这种方式迭代思考您的值:
import pandas as pd
df = pd.DataFrame(
{
'name': ['Anuj', 'Sinha'],
'adresse': ['Anuj,Sinha,BB', 'Sinha,Anuj BB']
}
)
for colunm in df.columns:
for index, value in enumerate(df[colunm]):
df[colunm][index] = value.replace(',', '-')
print(df)
会显示:
name adresse
0 Anuj Anuj-Sinha-BB
1 Sinha Sinha-Anuj BB