python - 考虑行和标题从数据框中选择值

标签 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 header 中的值

并且 value_two 等于 X 列中两个数据帧的值,

设置新列公共(public)值。

expected result:

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

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

谢谢你,

最佳答案

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

关于python - 考虑行和标题从数据框中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53635079/

相关文章:

python - 如何在具有现有列的数据框中设置多级索引

python - 操作数无法与形状 (16,) (21,) -pandas 一起广播

python - 使用迭代器作为列和索引更快地将总和值附加到数据帧

python - "unstack"包含多行列表的 pandas 列

python - Fillna 如果出现频率最高,则 fillna 为整个列中出现频率最高的值

python - 如何命名复杂的正则表达式以便在其他正则表达式中重用

python - Pandas DataFrame 与缺失值的乘法

javascript - 为什么我的 .html 文件无法连接到 .js 文件?

python - Django shell 编码错误(仅限 Debian,Ubuntu 没问题)

python - Pandas Dataframe to_csv 格式输出