熊猫:计算每一行在特定列中的对象数量

时间:2019-12-13 05:43:53

标签: python pandas

如果问题在某种意义上不完整,我们深表歉意。

我的数据框有一个特定的列,每一行都有多个条目(对象)。我想为每一行计算此列中的条目数。谁能建议方法? 我尝试了count(),len(),但没有得到所需的输出...

示例:

din=pd.DataFrame({'x':[['a','b','c'],['a','e','d', 'c']]})`

              x
0     [a, b, c]
1  [a, e, d, c]

预期输出:

              x   count
0     [a, b, c]     3
1  [a, e, d, c]     4

2 个答案:

答案 0 :(得分:2)

您可以使用.str访问器和方法.len()

din['count'] = din['x'].str.len()

输出:

              x  count
0     [a, b, c]      3
1  [a, e, d, c]      4

答案 1 :(得分:0)

如果您的列是对象类型,则您调用的任何内容都不是矢量化的(数组数学)。如果按行计数,则每次查找都会破坏缓存。除非您可以对列进行标准化并在矩阵中展平,否则没有有效的方法。也许尝试将列转换为大熊猫分类。