我有一个如下的数据框,
df = pd.Dataframe({'Col1' : pd.Series(['Abc','Cde','Efg','Abc'], index=['a', 'b', 'c','d']),
'Col2' : pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']),
'Col3' : pd.Series([1, 2., 3., 4.], index=['a', 'b', 'c', 'd'])})
依据Col1中列值的值,我想用Col2替换Col3值,
在这种情况下Col1值为“Abc”我想用Col2值更新Col3值,期望输出如
pd.Dataframe({'Col1' : pd.Series(['Abc','Cde','Efg','Abc'], index=['a', 'b', 'c','d']),
'Col2' : pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']),
'Col3' : pd.Series([10, 2., 3., 40], index=['a', 'b', 'c', 'd'])})
尝试过滤器,那个aint泛型,所以任何正确的方法都可以做到!!
答案 0 :(得分:3)
这应该有效:
import pandas as pd
df = pd.DataFrame({'Col1' : pd.Series(['Abc','Cde','Efg','Abc'], index=['a', 'b', 'c','d']),
'Col2' : pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']),
'Col3' : pd.Series([1, 2., 3., 4.], index=['a', 'b', 'c', 'd'])})
df.loc[df['Col1'] == 'Abc', 'Col3'] = df['Col2']