我有以下df。觀測的數量高達數億。我有一個包含大量(大約 1500 萬)地址的系列。如果可以在系列中找到 from 或 to address ,我想提取行。
from_address to_address value block_timestamp
0 0xcf1cc6s 0x272d9fa 1.01485 2018-06-03 09:13:22 00:00
1 0xbfb92c3 0x24d941b 3.097 2018-06-03 09:13:22 00:00
2 0x58076fd 0x5b89cb8 1.9089 2018-06-03 09:13:22 00:00
3 0x0000000 0xbe80455 7.71195 2018-06-03 09:13:22 00:00
4 0x0000000 0x334f5b0 7.71133 2018-06-03 09:13:22 00:00
5 0x0000000 0x9b54db8 1e 21 2018-06-03 09:13:22 00:00
6 0x84b06bd 0x2a0c0db 2.185 2018-06-03 10:55:46 00:00
7 0x59a5202 0x3122da2 1633277 2018-06-03 10:55:46 00:00
8 0x59a520a 0x02d9112 1.606 2018-06-03 10:55:46 00:00
9 0x5e57d43 0xd64d144 1.472 2018-06-03 01:02:14 00:00
我的代碼:
series= list['address'].str.lower()
df_extracted = df[df['from_address'].isin(series)
| df['to_address'].isin(series)]
但不知何故,當我查看原始 df 并查看包含特定地址的所有行時,我得到 136 行,而如果我對 df_extracted 做同樣的事情,我只會得到 12。所以當我使用上面的方法提取行時代碼,我做錯了什么。有誰知道我做錯了什么?
uj5u.com熱心網友回復:
這對我有用:
addresses = ['0x0000000', '0x2a0c0db']
df.query('from_address in @addresses or to_address in @addresses')
它應該與您的代碼以相同的方式作業,因此可能在應用此操作之前檢查您的資料框。
我得到的結果:
from_add to_add value block_timestamp
index
3 0x0000000 0xbe80455 7.71195 2018-06-03 09:13:22 00:00
4 0x0000000 0x334f5b0 7.71133 2018-06-03 09:13:22 00:00
5 0x0000000 0x9b54db8 1e 21 2018-06-03 09:13:22 00:00
6 0x84b06bd 0x2a0c0db 2.185 2018-06-03 10:55:46 00:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/464382.html
下一篇:如何擺脫Pandas的例外?
