Python 根据左侧的列重命名列
考虑一个数据帧,Python 根据左侧的列重命名列,python,pandas,Python,Pandas,考虑一个数据帧,df: Metric_a Status.1 Metric_b Status.2, Metric_c, Status.3 10 kg 11 mg 15 ml 12 kg 21 mg 25 ml 130 kg 41 mg 35 ml 我是从一个使用多个Status列的csv中读到这篇文章的。熊猫
df
:
Metric_a Status.1 Metric_b Status.2, Metric_c, Status.3
10 kg 11 mg 15 ml
12 kg 21 mg 25 ml
130 kg 41 mg 35 ml
我是从一个使用多个Status
列的csv
中读到这篇文章的。熊猫自然会把这些索引起来
我希望使用每个状态
列左侧的列重命名状态
列。通过检查,我相信秩序得到维持,左边的一栏总是合适的
期望输出:
Metric_a Status_Metric_a Metric_b Status_Metric_b Metric_c, Status_Metric_c
10 kg 11 mg 15 ml
12 kg 21 mg 25 ml
130 kg 41 mg 35 ml
您可以使用and(它仅适用于系列
,因此需要转换索引
):
另一个解决方案包括和:
您可以使用提供的
重命名方法。
例如:
df.rename(columns={'Status.1': 'Status_Metric_a'}, inplace=True)
a = df.columns.to_series()
df.columns = np.where(a.str.contains('Status'), 'Status_' + a.shift(), a)
print (df)
Metric_a Status_Metric_a Metric_b Status_Metric_b Metric_c \
0 10 kg 11 mg 15
1 12 kg 21 mg 25
2 130 kg 41 mg 35
Status_Metric_c
0 ml
1 ml
2 ml
df.rename(columns={'Status.1': 'Status_Metric_a'}, inplace=True)