考虑到行和标题,从数据框中选择值

时间:2018-12-05 14:58:21

标签: python pandas dataframe

我有两个数据框:

ONE=pd.read_csv('ONE.csv')
value_one  value_two  
2          4          
3          1          
4          2          

TWO=pd.read_csv('TWO.csv')
X  1    2    3    4    5    6    7    8
1  a    c    j    a    d    c    c    d
2  c    k    a    d    c    c    d    e
3  f    c    k    a    d    c    c    d
4  c    k    a    d    c    c    d    j

我需要在一个数据框(ONE['result']中创建其他列 在以下条件下:

如果value_one等于数据帧头2中的值

和value_two等于X列中两个数据框的值

设置新列的公共值。

expected result:

value_one  value_two  result   
2          4          k
3          1          j
4          2          d

我尝试过:仅用于比较标头if ONE[value_one]==TWO.iloc[0]

谢谢你,

1 个答案:

答案 0 :(得分:1)

lookup

您可以lookup第二个数据框:

df_two = df_two.set_index('X')  # set 'X' column as index
df_two.columns = df_two.columns.astype(int)  # ensure column labels are numeric

df_one['result'] = df_two.lookup(df_one['value_two'], df_one['value_one'])

print(df_one)

   value_one  value_two result
0          2          4      k
1          3          1      j
2          4          2      d