熊猫agg的功能取决于呼叫定义的不同行为

时间:2019-06-21 09:49:40

标签: python pandas aggregate

我不了解agg的行为。请参见下面的示例和预期结果。

pd.DataFrame({'d': [{'a': 1}, {'b': 2}]}).agg(list)
Out[372]: 
          d
0  {'a': 1}
1  {'b': 2}
pd.DataFrame({'d': [{'a': 1}, {'b': 2}]}).agg(lambda col: list(col))
Out[373]: 
          d
0  {'a': 1}
1  {'b': 2}
pd.DataFrame({'d': [{'a': 1}, {'b': 2}]}).agg({'d': list})
Out[374]: 
     d
0  [a]
1  [b]
pd.DataFrame({'d': [{'a': 1}, {'b': 2}]}).agg({'d': lambda col: list(col)})
Out[375]: 
     d
0  [a]
1  [b]

预期结果是:

pd.DataFrame({'d': [list(pd.DataFrame({'d': [{'a': 1}, {'b': 2}]}).d)]})
Out[379]: 
                      d
0  [{'a': 1}, {'b': 2}]

1 个答案:

答案 0 :(得分:0)

您可能需要另一个source

omit <- distinct(final, position, place, company, .keep_all = TRUE)

DataFrame无法做到这一点,它会聚合并对Y列执行X操作,它不会“聚合”值...

对于另一个示例,我会做:

>>> df = pd.DataFrame({'d': [{'a': 1}, {'b': 2}]})
>>> pd.DataFrame([df.values], columns=df.columns)
                          d
0  [[{'a': 1}], [{'b': 2}]]
>>>