簡體   English   中英

如何有效替換熊貓DataFrame上的值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM