python - 如何在 dask 中找到数据帧的长度?
问题描述
如何使用 dask 找到数据帧的长度?
例如在熊猫中,我可以这样做:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.normal(0, 1, (5, 2)), columns=["A", "B"])
print df['A'].count()
print df
输出:
5
A B
0 1.538531 0.424717
1 -0.929843 1.323648
2 -1.283680 0.056199
3 -0.641035 -1.998241
4 -0.058598 -1.400637
在 dask 我尝试:
import dask.dataframe as dd
df_dask = dd.from_pandas(df, npartitions=3)
print df_dask
print df_dask['A'].count()
输出:
A B
npartitions=2
0 float64 float64
2 ... ...
4 ... ...
Dask Name: from_pandas, 2 tasks
dd.Scalar<series-..., dtype=int32>
我需要长度的真正原因是因为 df_dask.sample() 需要一小部分,我想从数据帧中采样指定数量的条目。我使用长度来计算这个分数。有没有更简单/更快的方法来做到这一点?
解决方案
您可以使用或len
的长度:dask DataFrame column
index
print (len(df_dask['A']))
5
print (len(df_dask.index))
5
如果需要计算所有非NaN
s 值,您的解决方案会更好 - 添加compute
:
df = pd.DataFrame(np.random.normal(0, 1, (5, 2)), columns=["A", "B"])
df.loc[0, 'A'] = np.nan
print (df)
A B
0 NaN -1.727669
1 -0.390900 0.573806
2 0.338589 -0.011830
3 2.392365 0.412912
4 0.978736 2.238143
import dask.dataframe as dd
df_dask = dd.from_pandas(df, npartitions=3)
print (df_dask['A'].count().compute())
4
推荐阅读
- flutter - 当应用程序完全关闭时发送颤动的 Firebase 云消息
- unity3d - 从 Atan2 到四元数的对象没有以正确的方向旋转
- r - 如何更改ar数据表的结构
- python - 是否有使用不同参数值调用相同函数的 Python 最佳实践?
- r - 创建一个标识是否满足所有条件的列
- java - 如何从 Java 中的嵌套 HashMap 创建值的数组列表?
- android - 如何自动将标题和设备框架添加到 android 屏幕截图?
- mongodb - 如何找到所有文件的单价*数量
- java - 在每个方法中不关闭 javax.sql.DataSource 可以吗?
- c# - Selenium - 发送密钥以在影子根(打开)和挪威银行 ID 的多个 iframe 中输入密码