编辑:对问题进行了大量编辑以创建可复制的示例。
我已经加载了一个数据帧,在该数据帧中行和列被交换了,因此第一步,我将其转置:
df = pd.DataFrame({"A": ['A1', 'A2', 'A3'],
"B": ['B1', 'B2', 'B3'],
"C": ['C1', 'C2', 'C3']})
df = df.transpose()
然后使用数据框中的一行设置列的名称:
# take the first row of df and set its values as col names
df.columns = df.iloc[0]
df.drop(df.index[0], inplace=True) # remove the first row
这使我的索引列称为“ A”,但我想删除/重命名它。
将索引名设置为None
不会执行任何操作,索引名重命名不变。:
df.index.name = None
在将其设置为字符串时会创建索引名称,但不会删除第一个(保留在顶部)
df.index.name = "Foo"
我坚信这是一个多索引问题,但是df.index.names
为空。
问题:如果不是索引列名称,“ A”代表什么,以及如何删除/重命名?
编辑:我可以按照BEN_YO answer below删除它,但是我不确定为什么会删除它。
答案 0 :(得分:1)
它将起作用,您可以尝试将其分配回来,它也是column
名称而不是index
名称
df = df.rename_axis(None, axis="columns")
答案 1 :(得分:0)
问题:如果不是索引列名称,“ A”代表什么,以及如何删除/重命名?
我的术语可能不正确,但我相信它是列轴的名称。
看看这个示例的调整版本:
import pandas as pd
df = pd.DataFrame({"A": ['A1', 'A2', 'A3'],
"B": ['B1', 'B2', 'B3'],
"C": ['C1', 'C2', 'C3']})
print(df, end='\n\n')
df = df.transpose()
print(df, end='\n\n')
# take the first row of df and set its values as col names
df.columns = df.iloc[0]
print(df, end='\n\n')
df = df.iloc[1:]
print(df, end='\n\n')
print(f'index: {df.index}\ncolumns: {df.columns}')
输出:
A B C
0 A1 B1 C1
1 A2 B2 C2
2 A3 B3 C3
0 1 2
A A1 A2 A3
B B1 B2 B3
C C1 C2 C3
A A1 A2 A3
A A1 A2 A3
B B1 B2 B3
C C1 C2 C3
A A1 A2 A3
B B1 B2 B3
C C1 C2 C3
index: Index(['B', 'C'], dtype='object')
columns: Index(['A1', 'A2', 'A3'], dtype='object', name='A')