[英]How to replace efficiently values on a pandas DataFrame?
我有一個大的DataFrame(600k,2)命名數據 ,基本上在第二列中有一組50k沿數據分布的唯一值。
數據看起來像這樣
image_id term
0 56127 23001
1 56127 763003
2 56127 51002
3 26947 581007
4 26947 14001
5 26947 95000
6 26947 92000
7 26947 62004
8 26947 224007
...600k more
另一方面,我有一個名為terms_indexed的系列,其索引由這樣的50k個術語組成。
NewTerm
Term
23001 9100
763003 402
51002 10608
581007 900
14001 42107
95000 900
92000 4002
62004 42107
224007 9100
...50k more
但是我想使用帶有索引項的系列將這些值有效地重新放置在原始DataFrame中。 到目前為止,我已經完成了以下代碼
for i in range(data.shape[0]):
data.loc[i, 'term'] = int(terms_indexed.ix[data.iloc[i][1]])
但是,執行此替換操作需要花費大量時間。 配備8GB內存的Intel Core i7約需35分鍾。 我想知道是否有更好的方法來執行此操作。 提前致謝
如果我了解您的情況正確,則可以執行df['term'] = df['term'].map(terms_indexed)
。 通過使用series1.map(series2)
的值作為對series2的索引,可以“翻譯” series1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.