我在论坛中没有找到对我有帮助的解决方案。 我有一个非常大的交通数据数据框。我的数据框的 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: 这是一些示例数据:
最佳答案
尝试:
df['UsedLabelsCount']=[len(i) for i in df['usedLabels']]
关于arrays - 逐行计算数据框新列中数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65561554/