我有大量数据已读入 dask 数据帧。这个数据框有两列我认为是多余的(即具有相同的值)。这些列是字符串值——它们给出了用于培养细胞菌落的生长培养基的名称。
我想在删除其中一列之前检查我的假设,即这两列是相同的。
我能想到的最简单的解决方案如下:
(df['growth_media_1'] == df['growth_media_2']).all().compute()
但这给了我以下错误:
ValueError: Mismatched dtypes found in `pd.read_csv`/`pd.read_table`.
+--------+---------+----------+
| Column | Found | Expected |
+--------+---------+----------+
| input | float64 | int64 |
| output | float64 | int64 |
+--------+---------+----------+
Usually this is due to dask's dtype inference failing, and
*may* be fixed by specifying dtypes manually by adding:
dtype={'input': 'float64',
'output': 'float64'}
我认为这可能是因为列中有一些NaN
',所以我.dropna()
在比较之前尝试了做。但这并没有解决问题。
经过大量的挥舞,我最终得到了这个神秘的混乱:
(df['growth_media_1'].dropna() == df['growth_media_2'].dropna()).astype('bool').all().compute()
但即使这样也没有解决我的问题。
据我所知,该错误消息确实没有帮助,因为既不涉及pd.read_csv
也不涉及。pd.read_table
但是,pandas.read_text
在回溯中,所以也许 dask 正在为不同的数据分片写入文件。
(我使用的是 dask 版本 1.2.2,如果有帮助的话。我在高性能集群上使用它,它落后于软件的前沿。)