【发布时间】:2021-06-12 07:55:43
【问题描述】:
我有以下df
name created_utc
0 t1_cqug90j 1430438400
1 t1_cqug90k 1430438400
2 t1_cqug90z 1430438400
3 t1_cqug91c 1430438401
4 t1_cqug91e 1430438401
... ... ...
其中name 列中的所有值都是唯一的。我想创建一个字典,其键与name 列中的元素相同。每个这样的键的值是列created_utc 中大于键的元素数。我的预期结果类似于
{'t1_cqug90j': 6, 't1_cqug90k': 0, 't1_cqug90z': 3, ...}
本例中created_utc列有6个元素大于1430438400,即t1_cqug90j的对应值。我可以循环生成这样的字典。但是,在我的情况下,循环效率不高,行数超过 300 万。
能否请您详细说明一种更有效的方法?
import pandas as pd
import numpy as np
df = pd.read_csv('https://raw.githubusercontent.com/leanhdung1994/WebMining/main/df1.csv', header = 0)[['name', 'created_utc']]
df
【问题讨论】:
-
提示:尝试使用第二列作为键对两列进行排序。
-
广播会起作用,但在内存方面可能会有问题
-
名称是否唯一?
标签: python python-3.x pandas dictionary count