【发布时间】:2022-01-01 03:53:44
【问题描述】:
所以我有一个 100 行的数据框 (Df1)。我还有一个包含 1 行的数据框(df2)。对于每个数据框,一行代表一个属性。有问题的列是“NIY”和“购买价格”。我想编写一个查询 DF1 的函数,以显示 NIY 在 DF2 的 0.1 以内且购买价格在 DF2 的 2,000,000 以内的结果。
DF1 包含多个列,其中包含“NIY”和“购买价格”。
| Purchase_Price | NIY | Purchaser |
|---|---|---|
| 230000000 | 0.15 | GS |
| 30000000 | 0.08 | JKK |
见下方代码
df1 = pd.read_csv('CopyTransactions.csv', header=3)
df2 = {'Purchase_Price': [25300000], 'NIY': [0.078]}
df2 = pd.DataFrame(data=df2)
df1.query('Purchase_Price > 1000000 & NIY > 0.09')
df1.query('NIY within range g.0['NIY'] + or - 0.01
& Purchase_price within range g.0['Purchase_Price'] + or - 2,000,000)
代码一直工作到底部,我想弄清楚如何正确编码底部。 (底部代码中的 0 表示索引 0/第一行)
谢谢!
【问题讨论】:
-
“我也有一个包含 1 行的数据框 (df2)”,但
df2这里有 2 行。此外,我们没有您的 csv 文件'CopyTransactions.csv'。您正在查询名为df的数据框,但未声明df。如果您需要帮助,您需要提供足够的代码和数据来重现您的问题 -
接下来,我不会在您的列标题中添加空格。使用下划线。即
df2 = {'Purchase_Price': [25300000, 34400000], 'NIY': [0.078, 0.11]}。这样,df2.query('Purchase_Price > 1000000 & NIY > 0.09')就可以工作了 -
“我想编写一个函数来查询 DF1 以显示 NIY 在 DF2 的 0.1 范围内的结果”。那你为什么放
+ or - 0.02? -
谢谢,我会编辑的。本质上,我希望能够在一个范围内查询,而不是 > 或
-
明白了。建立 df1 的小样本数据集(就像您为 df2 所做的那样)