挣扎于基本数据帧操作(Python)

挣扎于基本数据帧操作(Python),python,dataframe,element,decrement,Python,Dataframe,Element,Decrement,我完全是Python的新手,尽管谷歌搜索了很长一段时间,但我仍在苦苦挣扎。我知道不应该这么难。我有一个名为abc的数据框,看起来像这样: PO_DATE PO_ITEM_NUMBER PO_PRICE PO_QTY ---------------------------------------------------------------- 0 01/15/2017 ABC123 1.55 1000 1 0

我完全是Python的新手,尽管谷歌搜索了很长一段时间,但我仍在苦苦挣扎。我知道不应该这么难。我有一个名为abc的数据框,看起来像这样:

   PO_DATE      PO_ITEM_NUMBER     PO_PRICE       PO_QTY
----------------------------------------------------------------
0  01/15/2017   ABC123             1.55           1000
1  01/25/2017   DEF456             5.55           500
我知道最大采购价格=5.55,我可以通过以下方式找到:

max_PO_Price = abc["PO_PRICE"].max()
我所要做的就是确定哪一行具有最大采购订单价格,找到该行的采购订单数量字段,并将其递减100。我一直想设想这个数据帧是一个2-D数组,但是,它不喜欢这样,而且,我知道它不是一个数组,因为涉及到不同的数据类型。我已经把这件事搞砸太久了,所以,最后决定发帖。我希望有人能原谅我缺乏知识,并为我指出正确的方向


谢谢。

您应该可以使用以下功能:

index_max=abc.loc[abc["PO_price"]==abc["PO_price"].max()].index
for i in index_max
  abc.at[i,"PO_QTY"]=abc[i,"PO_QTY"]-100
我想你想要:

abc.loc[abc.PO_PRICE==abc[“PO_PRICE”].max(),[PO_数量]]=abc[“PO_数量”]-100

下面是一个例子:

# Import pandas
import pandas as pd

# Create dataframe from example and priunt
abc = pd.DataFrame({'PO_Date':['01/15/2017', '01/25/2017'], 'PO_ITEM_NUMBER': ['ABC123', 'DEF456'], 'PO_PRICE':[1.55, 5.55], 'PO_QTY':[1000, 500]})
print(abc)

# Find which row has the max PO Price, and then subtract the quantity by 100
abc.loc[abc.PO_PRICE == abc['PO_PRICE'].max(), ['PO_QTY']] = abc['PO_QTY']-100

# Print it out
print(abc)
收益率:

      PO_Date PO_ITEM_NUMBER  PO_PRICE  PO_QTY
0  01/15/2017         ABC123      1.55    1000
1  01/25/2017         DEF456      5.55     500

      PO_Date PO_ITEM_NUMBER  PO_PRICE  PO_QTY
0  01/15/2017         ABC123      1.55    1000
1  01/25/2017         DEF456      5.55     400

你应该考虑一下,我的回答受到了影响。此外,这可能会有所帮助。

如果多行共享相同的最高价格,会发生什么情况?这非常有效。现在我需要坐下来试着分析一下你是怎么想到这个的。我不认为我能够,所以,我需要仔细地经历这一切。我非常感谢你们两位如此及时的回复。你不知道这对我有多大帮助。非常感谢。我对帖子进行了编辑,希望能更好地解释。如果这回答了你的问题,一定要选择它作为正确答案,这样它可能会帮助其他人。真的,谢谢你。这是毫无帮助的。我也投了票,但系统说,因为我是新手,所以不会显示它或其他东西-(