我有一個很大的DataFrame(600k,2),名爲data,基本上我在第二列中有一組沿着數據分佈的50k唯一值。如何有效地替換熊貓DataFrame上的值?
的數據看起來像這樣
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]])
然而,這需要很多時間來做這個替換操作。在Intel Core i7中使用8GB RAM約35分鐘。我想知道是否有更好的方法來做這個操作。在此先感謝
如果您在大df上的「term」列中設置索引,則可以調用['update'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame。 update.html)like large_df.update(other_df)' – EdChum 2014-09-03 21:09:14
這可能是有光澤的分類dtype(用於術語列)的用例。 – 2014-09-03 21:53:15