首页 > 解决方案 > Pandas concat 翻转了我在 DataFrame 中的所有值

问题描述

我有一个名为“running_tally”的数据框

        list   jan_to  jan_from
0         LA    True      False
1         NY   False       True

我正在尝试以名为“new_data”的单列数据框的形式将新数据附加到它

        list   
0        HOU
1         LA

我根据它们的“列表”列连接这两个 dfs 以进行进一步处理,但在我这样做之后,所有布尔值都意外翻转。

running_tally = pd.concat([running_tally,new_data]).groupby('list',as_index=False).first()

上述语句将产生:

        list   jan_to  jan_from
0         LA    False      True
1         NY     True     False
2        HOU     NaN        NaN

新行需要 NaN 值,但我不知道为什么布尔值都会翻转。这可能是什么原因?该代码在逻辑上对我来说是有意义的,所以我不确定我哪里出错了。谢谢

编辑:我对“new_data”进行了编辑,以包含与 LA 的重复。最终输出不应该有我的代码当前正确处理的重复,只有布尔翻转

编辑2:事实证明,在连接时,列会翻转,以使我相信布尔值翻转了。然而,仍然是一个悬而未决的问题

标签: pythonpandasdataframebooleanconcat

解决方案


我没有像你一样翻转布尔值,但你也可以试试这个:

running_tally=running_tally.append(new_data,ignore_index=True)
print(running_tally)

输出:

  list jan_to jan_from
0   LA   True    False
1   NY  False     True
2  HOU    NaN      NaN

编辑:由于问题已被编辑,您可以尝试:

running_tally=running_tally.append(new_data,ignore_index=True).groupby('list',as_index=False).first()

推荐阅读