当我使用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以外的东西吗?
答案 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