为什么引用连接的pandas数据帧会返回多个条目?

时间:2016-08-25 20:28:43

标签: python pandas concat

当我使用concat创建数据框时:

import pandas as pd
dfa = pd.DataFrame({'a':[1],'b':[2]})
dfb = pd.DataFrame({'a':[3],'b':[4]})
dfc = pd.concat([dfa,dfb])

我尝试像对待任何其他DataFrame一样引用我得到以下结果:

>>> dfc['a'][0]
0    1
0    3
Name: a, dtype: int64

我希望我的连接DataFrame表现得像普通的DataFrame,并返回我想要的整数,就像这个简单的DataFrame一样:

>>> dfa['a'][0]
1

我只是一个初学者,是否有一个简单的解释为什么同一个调用返回整个DataFrame而不是我想要的单个条目?或者,更好的是,当我尝试引用它时,一种让我的连接DataFrame像普通DataFrame一样响应的简单方法?或者我应该使用除concat以外的东西吗?

2 个答案:

答案 0 :(得分:2)

你误解了正常行为。 dfc['a'][0]是一个标签查找,匹配索引值为0的任何内容,其中有两个,因为您连接了两个数据框,其索引值包括0

以指定0

的位置
dfc['a'].iloc[0]

或者您可以构建dfc之类的

dfc = pd.concat([dfa,dfb], ignore_index=True)
dfc['a'][0]

两者都返回

1

答案 1 :(得分:2)

已编辑(thx piRSquared的评论)

使用append()代替pd.concat()

dfc = dfa.append(dfb, ignore_index=True)
dfc['a'][0]
1