为什么熊猫断言列表和元组相等?

时间:2018-10-25 20:43:29

标签: python pandas assertion

在比较一系列列表和一系列元组时,为什么熊猫通过assert_series_equal

例如,该测试通过:

l = pd.Series([[1], [2], [3]])
t = pd.Series([(1,), (2,), (3,)])
pd.testing.assert_series_equal(l, t)

我发现这特别令人担忧,因为如果聚合器中的第一个结果返回第一组的列表,则无法为一系列列表聚合多索引数据框。但是,这确实适用于元组。

示例:

>>> df = pd.DataFrame([[0, 0, 0], [1, 1, 2], [[1], [2], [3]], [(1,), (2,), (3,)]]).T
>>> df
   0  1    2     3
0  0  1  [1]  (1,)
1  0  1  [2]  (2,)
2  0  2  [3]  (3,)

>>> df.groupby([0, 1])[2].agg(sum)
ValueError: Function does not reduce

>>> df.groupby([0, 1])[3].agg(sum)
0  1
0  1    (1, 2)
   2      (3,)

有关更多详细信息,请参见this answer

0 个答案:

没有答案