我是Python的新手,我相信这是一个非常基本的问题(对不起),但我试图在这里寻找解决方案:Better way to add constant column to pandas data frame和此处:add column with constant value to pandas dataframe和在许多其他地方...
我有一个像这样的数据框"玩具"样本:
A B
10 5
20 12
50 200
我想添加新列(C),它将是A和B的最后数据单元的划分(50/200);所以在我的例子中,我想得到:
A B C
10 5 0.25
20 12 0.25
50 200 0.25
我尝试使用此代码:
groupedAC ['pNr'] = groupedAC['cIndCM'][-1:]/groupedAC['nTileCM'][-1:]
但是我只在最后一个单元格中得到结果(我相信它是我的代码充当"指针"而不是数字的结果 - 但正如我所说的那样,我试图将我的结果转换为常量(甚至使用 temp 变量),但没有成功)。
我们将非常感谢您的帮助!
答案 0 :(得分:1)
您需要使用.iloc[-1]
而不是.iloc[-1:]
对其进行索引,因为后者会返回一个系列,因此在分配回数据框时,需要匹配索引:
df.B.iloc[-1:] # return a Series
#2 150
#Name: B, dtype: int64
df['C'] = df.A.iloc[-1:]/df.B.iloc[-1:] # the index has to be matched in this case, so only
# the row with index = 2 gets updated
df
# A B C
#0 10 5 NaN
#1 20 12 NaN
#2 50 200 0.25
df.B.iloc[-1] # returns a constant
# 150
df['C'] = df.A.iloc[-1]/df.B.iloc[-1] # there's nothing to match when assigning the
# constant to a new column, the value gets broadcasted
df
# A B C
#0 10 5 0.25
#1 20 12 0.25
#2 50 200 0.25