如何根据条件重命名列中的项目?
How do I rename items from a column according to criteria?
我有以下数据框:
import pandas as pd
df = pd.DataFrame({'ID': [1,2,3,4,5],
'Name_columns': ['1', '2', '2022', '1', '1']})
print(df)
ID Name_columns
1 1
2 2
3 2022
4 1
5 1
我想替换“Name_columns”列中的值。哪里是 1 我想写“SENSOR”,哪里是 2 写“ACTUATOR”。所以我尝试使用 replace():
执行以下代码
df['Name_columns'] = df['Name_columns'].str.replace('1', 'SENSOR')
df['Name_columns'] = df['Name_columns'].str.replace('2', 'ACTUADOR')
得到的结果输出是:
print(df)
ID Name_columns
1 SENSOR
2 ACTUADOR
3 ACTUADOR0ACTUADORACTUADOR
4 SENSOR
5 SENSOR
我想问一下如何保留值 1 和 2 的实现,如果与这些值不同,我该如何写“无效”?
使用字典 map
the values and fillna
默认字符串:
d = {'1': 'SENSOR', '2': 'ACTUADOR'}
df['Name_columns'] = df['Name_columns'].astype(str).map(d).fillna('Invalid')
注意。如果该列已经是一个字符串,您可以省略 astype(str)
输出:
ID Name_columns
0 1 SENSOR
1 2 ACTUADOR
2 3 Invalid
3 4 SENSOR
4 5 SENSOR
A pandas.Series
有一个 map
方法,该方法接受字典作为参数,并将不在字典中的键保留为 nan
df['Name_columns'].map({'1': 'SENSOR', '2': 'ACTUATOR'}).fillna('INVALID')
# 0 SENSOR
# 1 ACTUATOR
# 2 INVALID
# 3 SENSOR
# 4 SENSOR
我有以下数据框:
import pandas as pd
df = pd.DataFrame({'ID': [1,2,3,4,5],
'Name_columns': ['1', '2', '2022', '1', '1']})
print(df)
ID Name_columns
1 1
2 2
3 2022
4 1
5 1
我想替换“Name_columns”列中的值。哪里是 1 我想写“SENSOR”,哪里是 2 写“ACTUATOR”。所以我尝试使用 replace():
执行以下代码 df['Name_columns'] = df['Name_columns'].str.replace('1', 'SENSOR')
df['Name_columns'] = df['Name_columns'].str.replace('2', 'ACTUADOR')
得到的结果输出是:
print(df)
ID Name_columns
1 SENSOR
2 ACTUADOR
3 ACTUADOR0ACTUADORACTUADOR
4 SENSOR
5 SENSOR
我想问一下如何保留值 1 和 2 的实现,如果与这些值不同,我该如何写“无效”?
使用字典 map
the values and fillna
默认字符串:
d = {'1': 'SENSOR', '2': 'ACTUADOR'}
df['Name_columns'] = df['Name_columns'].astype(str).map(d).fillna('Invalid')
注意。如果该列已经是一个字符串,您可以省略 astype(str)
输出:
ID Name_columns
0 1 SENSOR
1 2 ACTUADOR
2 3 Invalid
3 4 SENSOR
4 5 SENSOR
A pandas.Series
有一个 map
方法,该方法接受字典作为参数,并将不在字典中的键保留为 nan
df['Name_columns'].map({'1': 'SENSOR', '2': 'ACTUATOR'}).fillna('INVALID')
# 0 SENSOR
# 1 ACTUATOR
# 2 INVALID
# 3 SENSOR
# 4 SENSOR