您能否帮我转换数据框df
df=pd.DataFrame(data=[['a1',2,3],['b1',5,6],['c1',8,9]],columns=['A','B','C'])
df
Out[37]:
A B C
0 a1 2 3
1 b1 5 6
2 c1 8 9
df2
中的
df2=pd.DataFrame(data=[[2,5,8],[3,6,9]],columns=['a1','b1','c1'])
df2
Out[36]:
a1 b1 c1
0 2 5 8
1 3 6 9
第一列应该成为列名 然后我应该转换元素...是否有pythonic方式?
答案 0 :(得分:2)
切片的一个小技巧,初始化一个新的DataFrame
。
pd.DataFrame(df.values.T[1:], columns=df.A.tolist())
或者,
pd.DataFrame(df.values[:, 1:].T, columns=df.A.tolist())
a1 b1 c1
0 2 5 8
1 3 6 9
答案 1 :(得分:1)
对于一般解决方案,请使用set_index
转置:
df1 = df.set_index('A').T.reset_index(drop=True).rename_axis(None)
或删除列A
,按构造函数转置并构建新的DataFrame
:
df1 = pd.DataFrame(df.drop('A', 1).T.values, columns=df['A'].values)
print (df1)
a1 b1 c1
0 2 5 8
1 3 6 9