是否可以使用列表中的数据更改列名?
df = pd.DataFrame([[1, 1.0, 2.3,0.2,0.53], [2, 3.35, 2.0,0.2,0.65], [2,3.4,
2.0,0.25,0.55], [3,3.4,2.0,0.25,0.55], [1,3.4,2.0,0.25,0.55],
[3,3.4,2.0,0.25,0.55]],
columns=["ID", "A", "B","C","D"])\
.set_index('ID')
Run Code Online (Sandbox Code Playgroud)
我的新标签如下:
New_Labels=['NaU', 'MgU', 'AlU', 'SiU']
Run Code Online (Sandbox Code Playgroud)
是否可以使用上述列表中的数据更改名称?我的原始数据集有 100 列,我不想为每一列手动进行。
我正在尝试使用 df.rename 进行以下操作,但不断出现错误。谢谢!
使用重命名是一种形式上更正确的方法。您只需要提供一个字典,将当前列名映射到新列名(即使列错位,也能保证预期结果)
new_names = {'A':'NaU', 'B':'MgU', 'C':'Alu', 'D':'SiU'}
df.rename(index=str, columns=new_names)
Run Code Online (Sandbox Code Playgroud)
请注意,您可以为要替换的唯一名称提供条目,其余的将保持不变。
df = pd.DataFrame([[1, 1.0, 2.3,0.2,0.53], [2, 3.35, 2.0,0.2,0.65], [2,3.4,
2.0,0.25,0.55], [3,3.4,2.0,0.25,0.55], [1,3.4,2.0,0.25,0.55],
[3,3.4,2.0,0.25,0.55]],
columns=["ID", "A", "B","C","D"])\
.set_index('ID')
New_Labels=['NaU', 'MgU', 'AlU', 'SiU']
df.columns = New_Labels
Run Code Online (Sandbox Code Playgroud)
这将df看起来像这样:
NaU MgU AlU SiU
ID
1 1.00 2.3 0.20 0.53
2 3.35 2.0 0.20 0.65
2 3.40 2.0 0.25 0.55
3 3.40 2.0 0.25 0.55
1 3.40 2.0 0.25 0.55
3 3.40 2.0 0.25 0.55
Run Code Online (Sandbox Code Playgroud)
接受的rename答案很好,但它主要用于映射旧的\xe2\x86\x92新名称。如果我们只想用新列表删除列名,则无需创建中间映射字典。直接使用就可以了set_axis。
set_axis要将列表设置为列,请使用set_axis沿axis=1(默认axis=0设置索引值):
df.set_axis(New_Labels, axis=1)\n\n# NaU MgU AlU SiU\n# ID \n# 1 1.00 2.3 0.20 0.53\n# 2 3.35 2.0 0.20 0.65\n# 2 3.40 2.0 0.25 0.55\n# 3 3.40 2.0 0.25 0.55\n# 1 3.40 2.0 0.25 0.55\n# 3 3.40 2.0 0.25 0.55\nRun Code Online (Sandbox Code Playgroud)\n请注意,这set_axis与df.columns直接修改类似,但set_axis允许方法链接,例如:
df.some_method().set_axis(New_Labels, axis=1).other_method()\nRun Code Online (Sandbox Code Playgroud)\n从理论上讲,set_axis还应该提供比直接修改属性更好的错误检查,尽管我目前找不到具体的示例。
| 归档时间: |
|
| 查看次数: |
19009 次 |
| 最近记录: |