【发布时间】:2017-08-12 20:19:59
【问题描述】:
我有一个包含许多列的大型 DataFrame。我还有一个带有两列的较小 DataFrame - 称它们为“标签”和“值”,它们都在较大的 DataFrame 中。我想用较小 DataFrame 的 'value' 列替换较大 DataFrame 的 'value' 列,对于较大 DataFrame 的行,其中 'label' 与较小 DataFrame 中的行匹配。
for 循环的逻辑是:
largeDF = pd.DataFrame([['a',1],['b',2],['c',3],['d',4],['e',5]], columns=['label','value']).set_index('label')
smallDF = pd.DataFrame([['d',6],['e',7]], columns=['label','value']).set_index('label')
for label in smallDF.index:
largeDF.loc[label,'value'] = smallDF.loc[label,'value']
不幸的是
的明显答案largeDF['value'] = smallDF['value']
不起作用,因为它会对不在小 DF 中的标签进行 NaN。使用 .map() 也有类似的问题。
我正在使用的 for 循环似乎非常不合 Python,unpandas 和缓慢。我想念的更好的方法是什么?
【问题讨论】:
标签: python pandas dictionary dataframe indexing