Pandas会自动将行转换为列

时间:2017-06-01 07:08:27

标签: python pandas dataframe row shape

我有一个非常简单的数据框如下:

   A  B  C
0  2  a  a

我的目标是以如下所示的方式提取第一行:

df.loc[0]

如您所见,数据框形状(1x3)被保留,第一行仍有3列。

但是当我输入以下命令df.loc[0] Out[9]: A 2 B a C a Name: 0, dtype: object 时,输出结果为:

.T

正如您所看到的那行已经变成了一个包含3行的列! (3x1而不是3x1)。这怎么可能?我怎样才能简单地提取行并保持其形状,如我的目标所述?你能提供一种聪明而优雅的方式吗?

我尝试使用转置命令pd.DataFrame({'A':[2], 'B':'a', 'C':'a'})但没有成功......我知道我可以创建另一个数据帧,其中列由原始数据帧提取但这种方式相当繁琐且不优雅我会说({ {1}})。

如果需要,可以使用以下数据框:

import pandas as pd
df = pd.DataFrame({'A':[2,3,4,1], 'B':['a','s','c','f'], 'C':['a', 3, '!', 1]})

2 个答案:

答案 0 :(得分:4)

您需要为public async Task<HttpResponseMessage> PostResult(string url, ResultObject resultObject) { using (var client = new HttpClient()) { HttpResponseMessage response = new HttpResponseMessage(); try { response = await client.PostAsJsonAsync(url, resultObject); } catch (Exception ex) { throw ex } return response; } } 添加[]

DataFrame

或者:

#select by index value
print (df.loc[[0]])
   A  B  C
0  2  a  a

如果需要转置print (df.iloc[[0]]) A B C 0 2 a a ,首先需要通过to_frame将其转换为Series

DataFrame

答案 1 :(得分:2)

使用范围选择器将保留Dataframe格式。

df.iloc[0:1]
Out[221]: 
   A  B  C
0  2  a  a