如何使用数据帧设置列名



我有一个数据框,我学到了可以用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_axisinplace=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

相关内容

  • 没有找到相关文章

最新更新