首页 > 解决方案 > 根据来自另一个数据框列的值选择列值

问题描述

我有一个pandas dataframe类似于下面的:

  |   Date  | Value1 | Value2
0 | 2021-01 | 10.90  | 2.34
1 | 2021-02 | 12.85  | 4.65
2 | 2021-03 | 15.56  | 6.11
3 | 2021-04 | 18.23  | 8.62

创建数据框的示例代码:

import pandas as pd

df = pd.DataFrame({
    "Date": ['2021-01', '2021-02', '2021-03', '2021-04'],
    "Value1": [10.90, 12.85, 15.56, 18.23],
    "Value2": [2.34, 4.65, 6.11, 8.62]
})

我想使用特定的从Value1和列中提取值而不作为.Value2DateDatedataframe

我所做的工作正常,但正在寻找更好的方法。

单行代码将非常感谢这项任务。

我的做法:

value1_2021_01 = df[df["Date"] == '2021-01'][['Value1']].iat[0,0]

value2_2021_04 = df[df["Date"] == '2021-04'][['Value2']].iat[0,0]

请注意,Date列将始终具有唯一值。

标签: pythonpandasdataframe

解决方案


我没有正确回答问题,但你想要这样的东西:

g = lambda x: df.query(f'Date=="{x}"')[['Value1', 'Value2']]
value1,value2 = g('2021-01').values[0]

print(value1, value2)

输出:

(10.9, 2.34)

推荐阅读