.iloc 和 for 循环在熊猫中添加新列

时间:2021-04-15 20:46:51

标签: python pandas dataframe loops for-loop

有一个像这样的数据框:

import pandas as pd
df = pd.DataFrame([[11, 21], [24, 15], [17, 48], [28, 31], [22, 14]],columns=['A', 'B'])

enter image description here

所以我想在名称“C”中添加新列。但我想要“C”计算

基于 "A" 作为 "C"[i]="A"[i]-"A"[i-1] 公式。

我写了两种方法,但它们不起作用。

第一种方法):

for i in (0,5)
    df['c'].iloc[i]=df['A'].iloc[i]- df['A'].iloc[i-1]
print(df)

第二):

for i in (0,5)
    df.iloc['c',i]=df.iloc['A',i]- df.iloc['A',i-1]
print(df)

有人可以指导吗?

1 个答案:

答案 0 :(得分:1)

您可以使用.shift()

df["C"] = df.A - df.A.shift(1)
print(df)

打印:

    A   B     C
0  11  21   NaN
1  24  15  13.0
2  17  48  -7.0
3  28  31  11.0
4  22  14  -6.0