换位后
我有一个数据框,我学到了可以用df"翻转"。T 但我想知道如何在转置数据框的同时添加新的列名。
我的数据是这样的:
dict = {"a":[1,2,3,4],
"b":['A','B','C','D'],
"c":['day','night','day','day']}
df = pd.DataFrame(dict)
a b c
0 1 A day
1 2 B night
2 3 C day
3 4 D day
并带有 df。T 像这样:
df.T
0 1 2 3
a 1 2 3 4
b A B C D
c day night day day
但是我正在尝试(但失败(让标题像这样转置更改:
dfT = df.T(headers = df['b'])
dfT = df.T.columns = df['b']
我想要的结果是同时转置:
A B C D
a 1 2 3 4
b A B C D
c day night day day
这在 df 中可能吗?T?
谢谢!
您可以使用重命名来执行此操作:
dfT = df.T.rename(columns=df.b)
>>> dfT
A B C D
a 1 2 3 4
b A B C D
c day night day day
set_index
在转置之前
df.set_index('b').T
b A B C D
a 1 2 3 4
c day night day day
但是,这会移动该行。
drop=False
df.set_index('b', drop=False).T
b A B C D
a 1 2 3 4
b A B C D
c day night day day
换位后set_axis
。
df.T.set_axis(df.b, axis=1, inplace=False)
b A B C D
a 1 2 3 4
b A B C D
c day night day day
将来,Pandas.DataFrame.set_axis
将inplace=False
作为默认参数值,这可能只是
df.T.set_axis(df.b, 1)
相当简单
dfT = df.T
dfT.columns = df['b'].values
A B C D
a 1 2 3 4
b A B C D
c day night day day
你可以使用这个:
df.set_index(df['b']).T
注: 您正在创建与数据帧中的列 b 相等的新序列,而不是将列"b"移动到索引中。
b A B C D
a 1 2 3 4
b A B C D
c day night day day
而且,要删除 column.name 您可以使用:
df.set_index(df['b']).rename_axis(None).T
输出:
A B C D
a 1 2 3 4
b A B C D
c day night day day