为什么引用串联的 pandas 数据帧 return 多个条目?

Why does referencing a concatenated pandas dataframe return multiple entries?

当我像这样使用 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,return 我想要的整数就像这个简单的 DataFrame 那样:

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

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

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

为了指定0

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

或者你可以像

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

双双返回

1

已编辑(感谢 piRSquared 的评论)

改用append() pd.concat():

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