我有一个很大的数据集,我正在评估各种分析方法。它是一组csv,每个文件有大约4000万行。读入pandas数据帧,我有以下示例数据。(下面的数据是随机生成的)账户标识符会不时重复,有的在盒子里,有的在外面。我使用csv阅读器以一种“蛮力”的方式工作,并将一个随机生成的1000万行样本的处理时间降低到约60秒。我希望我可以用pandas来提高效率,因为实际的数据集要大得多,我们将来可能需要反复进行这种解析。在
account lat lng
0 f413e6cd-bbfe-463b-bf58-cba1a74a4aff 50.847615 70.826473
1 8b2ceb89-7ce0-4e14-a5f0-28acb7b05d8b 18.545991 115.078981
2 a51ab728-14b5-473c-bed1-91953da8ba22 30.699439 9.660661
3 83e3964f-130f-49bc-9c4b-d46d4b48c2cb 7.906903 70.507260
4 84c75e57-5a5f-4314-80be-d1271ecd76ef -20.325371 48.310855
这个块描述了我想要用来匹配dataframe行的函数。我有多个边界框,我需要检查成员资格。在
^{pr2}$我真的不明白如何在收集新数据帧中匹配的行时,使用来自数据帧多个列的条件,将lambda函数应用于所有行。我在网上找不到任何类似的例子。在
到目前为止,我的工作是这样的:
df = pd.read_csv('DATA.csv')
df.columns = ['account', 'lat', 'lng']
accounts= df[(bottom <= df.lat) & (df.lat <= top) & (left <= df.lng) & (df.lng <= right)]
results = df[df.account.isin(accounts)]
results.to_csv('pd_out.csv', header=False, )
但这只适用于一个边界框。我不知道如何进行与上面类似的过滤,但是要使用inu-bounds函数。那么我怎样才能做到最好呢?在
不太漂亮,但是要组合这两个条件,可以使用
|
运算符。注意两个框条件的括号。在相关问题 更多 >
编程相关推荐