Python 替换数据帧中的特定字符串
我有这样一个数据帧:Python 替换数据帧中的特定字符串,python,pandas,Python,Pandas,我有这样一个数据帧: Basic Stats Min Max Mean Stdev Num Eigenvalue 0 Band 1 0.428944 0.843916 0.689923 0.052534 1 0.229509 1 Band 10 -0.000000 0.689320 0.513170 0.048885 2 0.119217 我想用LG68替换Band 1,用LG69
Basic Stats Min Max Mean Stdev Num Eigenvalue
0 Band 1 0.428944 0.843916 0.689923 0.052534 1 0.229509
1 Band 10 -0.000000 0.689320 0.513170 0.048885 2 0.119217
我想用LG68
替换Band 1
,用LG69
替换Band 10
我试过:
df=df.replace({'Band 1': 'LG68', 'Band 10': 'LG69'}, regex=True)
但这也带来了:
Basic Stats Min Max Mean Stdev Num Eigenvalue
0 LG68 0.428944 0.843916 0.689923 0.052534 1 0.229509
1 LG680 -0.000000 0.689320 0.513170 0.048885 2 0.119217
因为波段10也包含波段1
我也尝试过:
df=df.T
df=df.rename(columns={'Band 1':'LG68', 'Band10': 'LG69'})
但这会悄悄地失败(名称根本没有更改),可能是因为我没有将Band 1和Band 10作为列名,而是实际的行?也许可以尝试使用
map
函数和dict
来描述映射关系
df['Basic Stats'] = df['Basic Stats'].map({'Band 1': 'LG68', 'Band 10': 'LG69'})
df
Basic Stats Min Max Mean Stdev Num Eigenvalue
0 LG68 0.4289 0.8439 0.6899 0.0525 1 0.2295
1 LG69 -0.0000 0.6893 0.5132 0.0489 2 0.1192
可以尝试使用
map
函数和dict
来描述映射关系
df['Basic Stats'] = df['Basic Stats'].map({'Band 1': 'LG68', 'Band 10': 'LG69'})
df
Basic Stats Min Max Mean Stdev Num Eigenvalue
0 LG68 0.4289 0.8439 0.6899 0.0525 1 0.2295
1 LG69 -0.0000 0.6893 0.5132 0.0489 2 0.1192
可以尝试使用
map
函数和dict
来描述映射关系
df['Basic Stats'] = df['Basic Stats'].map({'Band 1': 'LG68', 'Band 10': 'LG69'})
df
Basic Stats Min Max Mean Stdev Num Eigenvalue
0 LG68 0.4289 0.8439 0.6899 0.0525 1 0.2295
1 LG69 -0.0000 0.6893 0.5132 0.0489 2 0.1192
可以尝试使用
map
函数和dict
来描述映射关系
df['Basic Stats'] = df['Basic Stats'].map({'Band 1': 'LG68', 'Band 10': 'LG69'})
df
Basic Stats Min Max Mean Stdev Num Eigenvalue
0 LG68 0.4289 0.8439 0.6899 0.0525 1 0.2295
1 LG69 -0.0000 0.6893 0.5132 0.0489 2 0.1192
您正在将regex设置为true,因此您应该能够只使用regex。添加$以匹配字符串的结尾
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)
您正在将regex设置为true,因此您应该能够只使用regex。添加$以匹配字符串的结尾
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)
您正在将regex设置为true,因此您应该能够只使用regex。添加$以匹配字符串的结尾
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)
您正在将regex设置为true,因此您应该能够只使用regex。添加$以匹配字符串的结尾
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)
您可以通过在
频带1
的末尾添加一个$
来修复正则表达式,使语句看起来像
df=df.replace({'Band 1$': 'LG68', 'Band 10': 'LG69'}, regex=True)
$
匹配行尾,因此只有当第1带
后跟字符串或换行符时,第1带$
才会匹配。您还可以使用只匹配字符串结尾的\Z
。您可以通过在波段1
的结尾添加$
来修复正则表达式,使语句看起来像
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)
df=df.replace({'Band 1$': 'LG68', 'Band 10': 'LG69'}, regex=True)
$
匹配行尾,因此只有当第1带
后跟字符串或换行符时,第1带$
才会匹配。您还可以使用只匹配字符串结尾的\Z
。您可以通过在波段1
的结尾添加$
来修复正则表达式,使语句看起来像
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)
df=df.replace({'Band 1$': 'LG68', 'Band 10': 'LG69'}, regex=True)
$
匹配行尾,因此只有当第1带
后跟字符串或换行符时,第1带$
才会匹配。您还可以使用只匹配字符串结尾的\Z
。您可以通过在波段1
的结尾添加$
来修复正则表达式,使语句看起来像
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)
df=df.replace({'Band 1$': 'LG68', 'Band 10': 'LG69'}, regex=True)
$
匹配行尾,因此只有当第1带
后跟字符串或换行符时,第1带$
才会匹配。您还可以使用只匹配字符串结尾的\Z
。返回Basic Stats
中的所有值,作为NaN
@StefanoPotter。您能否在原始数据帧中显示df['Basic Stats']的结果。值[:5]
?产生的NaN
通常是dict
中的键与Basic Stats
列中的值不匹配的结果。['Band 1''Band 2''Band 3''Band 4''Band 5']['Band 1''Band 2''Band 3''Band 4''Band 5']
I,有80个乐队编号为1-80我正在这样做for@StefanoPotter因此,每个乐队前面都有一个空格。尝试.map({'Band 1':'LG68','Band 10':'LG69})
。或者,在映射之前尝试删除前导或尾随空格。实际上不应该有空格…但即使添加了空格,它仍会返回NaN,即返回Basic Stats
中的所有值,如NaN
@StefanoPotter您能显示df['Basic Stats']的结果吗?值[:5]
在原始数据帧中?产生的NaN
通常是dict
中的键与Basic Stats
列中的值不匹配的结果。['Band 1''Band 2''Band 3''Band 4''Band 5']['Band 1''Band 2''Band 3''Band 4''Band 5']
I,有80个乐队编号为1-80我正在这样做for@StefanoPotter因此,每个乐队前面都有一个空格。尝试.map({'Band 1':'LG68','Band 10':'LG69})
。或者,在映射之前尝试删除前导或尾随空格。实际上不应该有空格…但即使添加了空格,它仍会返回NaN,即返回Basic Stats
中的所有值,如NaN
@StefanoPotter您能显示df['Basic Stats']的结果吗?值[:5]
在原始数据帧中?产生的NaN
通常是dict
中的键与Basic Stats
列中的值不匹配的结果。['Band 1''Band 2''Band 3''Band 4''Band 5']['Band 1''Band 2''Band 3''Band 4''Band 5']
I,有80个乐队编号为1-80我正在这样做for@StefanoPotter因此,每个乐队前面都有一个空格。尝试.map({'Band 1':'LG68','Band 10':'LG69})
。或者,在映射之前尝试删除前导或尾随空格。实际上不应该有空格…但即使添加了空格,它仍会返回NaN,即返回Basic Stats
中的所有值,如NaN
@StefanoPotter您能显示df['Basic Stats']的结果吗?值[:5]
在原始数据帧中?产生的NaN
通常是dict
中的键与Basic Stats
列中的值不匹配的结果。['波段1''波段2''波段3''波段4'
df=df.replace({'Band 1$': 'LG68', 'Band 10$': 'LG69'}, regex=True)