Rename X columns in a pandas dataframe? Where X varies
本问题已经有最佳答案,请猛点这里访问。
我有一个数据框架,其中(由于我控制之外的原因)变量的数量从1到20不等,所有变量都被命名为1、2、3、4、5…。等
一天有四列:
1 2 3 4 5 6 | data = {'1': ['A', 'B', 'C', 'D', 'E'], '2': [1, 0, 1, 0, 1], '3': [1, 1, 0, 0, 3], '4': [0, 0, 1, 1, 1]} df = pd.DataFrame(data) df |
另一天有两列:
1 2 3 4 | data = {'1': ['A', 'B', 'C', 'D', 'E'], '2': [1, 0, 1, 0, 1]} df = pd.DataFrame(data) df |
我想要什么:
在每个列名称前面加上"变量"(不考虑列数)。所以看起来是这样的:
1 2 3 4 5 6 | data = {'variable_1': ['A', 'B', 'C', 'D', 'E'], 'variable_2': [1, 0, 1, 0, 1], 'variable_3': [1, 1, 0, 0, 3], 'variable_4': [0, 0, 1, 1, 1]} df = pd.DataFrame(data) df |
我可以用一个循环来完成,但我希望有一个更简单的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | In [171]: data = {'1': ['A', 'B', 'C', 'D', 'E'], ...: '2': [1, 0, 1, 0, 1], ...: '3': [1, 1, 0, 0, 3], ...: '4': [0, 0, 1, 1, 1]} ...: df = pd.DataFrame(data) ...: In [172]: df.rename(columns = lambda x : 'variable_' + x) Out[172]: variable_1 variable_2 variable_3 variable_4 0 A 1 1 0 1 B 0 1 0 2 C 1 0 1 3 D 0 0 1 4 E 1 3 1 |