-1
是否可以使用熊猫来计算跨多个数据框的一列中的唯一值?跨多个数据帧对一列中的唯一值进行计数
例
在每数据帧其具有要搜索的独特值= '用户ID' 在列'用户ID'
df1: 1, 2, 3, 4 df2: 1, 2, 3 df3: 5, 6, 7 output = 7
唯一值COLUMNNAME跨所有数据框
谢谢!
是否可以使用熊猫来计算跨多个数据框的一列中的唯一值?跨多个数据帧对一列中的唯一值进行计数
例
在每数据帧其具有要搜索的独特值= '用户ID' 在列'用户ID'
df1: 1, 2, 3, 4 df2: 1, 2, 3 df3: 5, 6, 7 output = 7
唯一值COLUMNNAME跨所有数据框
谢谢!
访问所有数据帧中的userId
列,然后调用pd.concat
和pd.Series.nunique
。
df1
userId
0 1
1 2
2 3
3 4
df2
userId
0 1
1 2
2 3
df3
userId
0 5
1 6
2 7
series_list = [x['userId'] for x in [df1, df2, df3]]
count = pd.concat(series_list).nunique()
count
7
numpy的可快,使用
In [255]: np.unique(np.hstack([d['userId'].values for d in [df1, df2, df3]])).size
Out[255]: 7
时序
In [251]: [d.shape for d in [df1, df2, df3]]
Out[251]: [(4000, 1), (3000, 1), (3000, 1)]
In [253]: %timeit np.unique(np.hstack([d['userId'].values for d in [df1, df2, df3]])).size
10000 loops, best of 3: 184 µs per loop
In [254]: %timeit pd.concat([x['userId'] for x in [df1, df2, df3]]).nunique()
1000 loops, best of 3: 885 µs per loop
那些不喜欢看dataframes我。如何处理一些_real_数据? –
或者,所有的数据帧都有一个userId列吗? –
@JohnGalt打电话给我很简单......只需输入@c,然后点击标签。 c不是unicode ;-) –