我正在尝试更改 Pandas 数据框中列的名称。我使用 python 3.7。我有 30 列编号为 0-29,我想将它们的名称更改为 1-30。我知道这是一个愚蠢的问题,但我试图以尽可能少的行数来做,但我在网上找不到任何有效的东西。有人可以帮我吗?
谢谢
答案 0 :(得分:2)
如果你有这样的数据框:
0 1 2 3
0 a d e f
1 b g h i
2 c j k l
然后你可以这样做:
df.columns = df.columns.astype(int) + 1
print(df)
打印:
1 2 3 4
0 a d e f
1 b g h i
2 c j k l
答案 1 :(得分:0)
在这里你可以使用它。我相信你会发现它足够简短。
df.columns = [list(range(1,31))]
答案 2 :(得分:0)
另一种方法是使用 RangeIndex
df.columns = pd.RangeIndex(1, len(df.columns)+1)
仅供参考,您可以阅读有关 Int64Index and RangeIndex 的文档:RangeIndex 是 Int64Index 的优化版本
答案 3 :(得分:0)
在这种情况下,您可以使用列表理解来重命名数据框列
frozenset
答案 4 :(得分:0)
您可以在下面使用...
只需创建具有 30 列的随机样本数据,如下所示,其中我们看到默认的 RangeIndex
开始索引从 0
开始,通过 step=1
,我们可以对其进行更改以获得所需的值。< /p>
df = pd.DataFrame(np.random.randint(0,100,size=(100, 30)))
print(df)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 37 87 10 94 76 42 94 80 2 54 98 18 27 32 94 41 97 61 22 87 67 43 12 49 67 92 69 52 78 49
1 80 77 64 81 91 36 46 83 54 25 55 5 4 57 68 59 36 94 79 14 27 7 36 37 15 3 9 32 50 95
2 58 91 87 59 60 65 90 97 55 48 11 62 76 28 89 99 78 60 92 25 93 35 41 69 88 19 85 18 56 52
3 50 5 80 32 42 96 89 62 77 89 72 8 1 3 52 92 71 95 42 18 9 76 5 53 56 18 17 5 3 40
4 37 92 30 45 14 15 96 29 0 45 59 59 82 51 78 30 25 95 50 22 34 12 24 59 63 5 75 15 85 95
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
95 49 58 9 18 44 48 15 74 76 70 81 88 36 32 35 96 93 95 2 69 20 40 22 19 55 92 33 45 20 82
96 75 15 65 77 4 2 45 16 42 25 12 47 35 64 3 89 47 68 59 52 82 37 67 32 64 62 7 81 79 42
97 7 95 21 52 42 84 0 85 0 2 16 97 45 56 30 15 33 49 82 60 51 29 3 37 51 8 65 73 55 56
98 69 66 25 61 85 50 76 27 51 44 46 53 56 67 20 15 5 77 54 18 18 48 34 2 89 84 55 26 19 4
99 41 63 23 46 33 78 86 32 4 9 13 40 13 17 22 78 60 96 56 3 30 78 65 66 15 43 98 79 10 23
[100 行 x 30 列]
print(df.columns)
RangeIndex(start=0, stop=30, step=1) <-- default behaviour
我们可以将默认的 RangeIndex
更改为 start=1
,如下所示,以获得您想要的结果。
df.columns = df.columns+1
print(df.columns)
RangeIndex(start=1, stop=31, step=1)
print(df)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
0 37 87 10 94 76 42 94 80 2 54 98 18 27 32 94 41 97 61 22 87 67 43 12 49 67 92 69 52 78 49
1 80 77 64 81 91 36 46 83 54 25 55 5 4 57 68 59 36 94 79 14 27 7 36 37 15 3 9 32 50 95
2 58 91 87 59 60 65 90 97 55 48 11 62 76 28 89 99 78 60 92 25 93 35 41 69 88 19 85 18 56 52
3 50 5 80 32 42 96 89 62 77 89 72 8 1 3 52 92 71 95 42 18 9 76 5 53 56 18 17 5 3 40
4 37 92 30 45 14 15 96 29 0 45 59 59 82 51 78 30 25 95 50 22 34 12 24 59 63 5 75 15 85 95
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
95 49 58 9 18 44 48 15 74 76 70 81 88 36 32 35 96 93 95 2 69 20 40 22 19 55 92 33 45 20 82
96 75 15 65 77 4 2 45 16 42 25 12 47 35 64 3 89 47 68 59 52 82 37 67 32 64 62 7 81 79 42
97 7 95 21 52 42 84 0 85 0 2 16 97 45 56 30 15 33 49 82 60 51 29 3 37 51 8 65 73 55 56
98 69 66 25 61 85 50 76 27 51 44 46 53 56 67 20 15 5 77 54 18 18 48 34 2 89 84 55 26 19 4
99 41 63 23 46 33 78 86 32 4 9 13 40 13 17 22 78 60 96 56 3 30 78 65 66 15 43 98 79 10 23
[100 rows x 30 columns]
有关更多信息,您可以查看help(df.columns)
| start : int (default: 0), or other RangeIndex instance
| If int and "stop" is not given, interpreted as "stop" instead.
| stop : int (default: 0)
| step : int (default: 1)
| name : object, optional
| Name to be stored in the index.
| copy : bool, default False
| Unused, accepted for homogeneity with other index types.
|
| Attributes
| ----------
| start
| stop
| step
|
| Methods
| -------
| from_range