arrays - 逐行计算数据框新列中数组的元素

标签 arrays pandas dataframe count

我在论坛中没有找到对我有帮助的解决方案。 我有一个非常大的交通数据数据框。我的数据框的 33 列之一是一个数组,其中包含(该行)解决方案允许的标签。

所以该列是:

usedLabels

[db_fv, blablacar, flixbus]

[db_fv, blablacar, flixbus]

[db_fv, blablacar, flixbus, airplane]

[db_fv, blablacar]

我想添加一列来计算每行每个数组的条目:

usedLabelsCount

3

3

4

2

这是我到目前为止尝试过的:

size = 1
for dim in df['usedLabels']: size *= dim
    
df['usedLabelsCount'] = df.set_index(['usedLabels']).count(level="usedLabels")
df['usedLabelsCount'] = len(df['usedLabels'])

df['usedLabelsCount'] = df['usedLabels'].count

我的结果 .count是:

<bound method Series.count of 0 [db_fv...>

并与 len我得到所有行的计数(而不是每行)。因此,usedLabelsCount 的每一行将包含 903829(这是总体计数,而不是每行)

谢谢!

编辑: 建议的解决方案(见下文)不太有效:

df['UsedLabelsCount']=[len(i) for i in df['usedLabels']]

我尝试过,但现在计数为 27。这是标签的整体唯一值(而不是每行)。我不知道为什么..我也尝试过:

for index, row in df.iterrows(): a = (len(i) for i in df['usedLabels']) df['usedLabelsCount']= a 

但这会将错误打印到数据框中(代码运行):<generator object <genexpr> at 0x7f9566666c80> 有什么想法吗?

编辑2: 这是一些示例数据:

https://github.com/Hektor1997/sample-data.git

最佳答案

尝试:

df['UsedLabelsCount']=[len(i) for i in df['usedLabels']]

关于arrays - 逐行计算数据框新列中数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65561554/

相关文章:

python - 规范化单行多列?

c# - C#.NET 中的 Pandas Dataframe 或类似工具

python - 使用 PySpark 对数字列进行分箱

python - 访问 API 时在 Python 中收到请求错误 404

Python 字节数组与字节列表

java - 使用数组来决定谁是活跃玩家(回合制猜谜游戏)

python - 从 MultiIndex DataFrame 为切片分配新值

R 创建一个新列,用于标识行是否是该类型用户的最后一个条目

python - 如何提取 m × m 矩阵中的每个 n × n 矩阵

mysql - mysql的语法数组