使用for语句为pandas中的数据框创建多个额外的计算列



我正在尝试使用循环为我的数据框架创建一个额外的列,其中额外的列将是当前列的倍数,但该倍数将改变。我知道这可以通过为每个列创建一个新列来相对容易地解决,但这是一个更大项目的一部分,我不能这样做。

从这个数据框开始

Time  Amount
0    20      10
1    10       5
2    15      25

希望有以下结果:

Time  Amount  Amount i=2  Amount i=3  Amount i=4
0    20      10          20          30          40
1    10       5          10          15          20
2    15      25          50          75          75

认为应该有一个简单的答案,但在网上找不到任何东西。到目前为止,我有这个:

data = {'Time':  [20,10,15],
'Amount': [10,5,25]}    
df = pd.DataFrame(data)
for i in range(2,5):
df = df.append(df['Amount']*i)
print(df)

感谢

你想要这样的东西吗?

for i in range(2,5): 
df["Amout i={}".format(i)] = df['Amount']*i 

输出:

Time  Amount  Amout i=2  Amout i=3  Amout i=4
0    20      10         20         30         40
1    10       5         10         15         20
2    15      25         50         75        100

您在找:

import pandas as pd

data={'Time':[20,10,15],'Amount':[10,5,25]}
df=pd.DataFrame(data)
for i in range(2,5):
df['Amount i='+str(i)]=df['Amount']*i
print(df)

结果:

Time  Amount  Amount i=2  Amount i=3  Amount i=4
0    20      10          20          30          40
1    10       5          10          15          20
2    15      25          50          75         100

尝试:

df = df.join(pd.concat([df['Amount'].mul(i).rename(f'Amount i={i}')
for i in range(2, 5)], axis=1))
>>> df
Time  Amount  Amount i=2  Amount i=3  Amount i=4
0    20      10          20          30          40
1    10       5          10          15          20
2    15      25          50          75         100

最新更新