我有一个非常简单的数据帧像这样:熊猫自动转换行
In [8]: df
Out[8]:
A B C
0 2 a a
1 3 s 3
2 4 c !
3 1 f 1
我的目标是提取第一排,看起来像这样的方式:
A B C
0 2 a a
由于您可以看到数据帧形状(1x3)被保留,第一行仍然有3列。
然而,当我键入以下命令df.loc[0]
输出结果是这样的:
df.loc[0]
Out[9]:
A 2
B a
C a
Name: 0, dtype: object
正如你看到的,行变成了列3行! (3x1而不是3x1)。这怎么可能?我如何简单地提取该行并保持其目标中描述的形状?你能提供一个聪明和优雅的方式来做到这一点?
我试图用转置命令.T
但没有成功......我知道我可以创建其中列由原始数据帧中提取另一个数据框,但这种方式很繁琐,不优雅,我会说(pd.DataFrame({'A':[2], 'B':'a', 'C':'a'})
)。
下面是数据框,如果你需要它:
import pandas as pd
df = pd.DataFrame({'A':[2,3,4,1], 'B':['a','s','c','f'], 'C':['a', 3, '!', 1]})
好吧,我看到这是最好的方式...但是我仍然漫步为什么.T不工作...这是一个错误? –
不,但首先需要通过'to_frame'将'DataFrame'转换为'DataFrame',然后就可以转置,因为'Series'不能转置 – jezrael
哦,好的完美,现在变得更有意义了!非常感谢! –