从一列到下一列的百分比变化

2024-05-15 00:00:28 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个数据帧:

df = pd.DataFrame([[3, 2, 1], [5, 4, 2]])

3 2 1
5 4 2

我想返回一个数据帧,其中一列到下一列的百分比变化。因此,上述数据集将返回:

.666 .5
.8   .5

我如何在熊猫身上做到这一点


Tags: 数据dataframedfpd百分比集将
2条回答

熊猫有这样的功能。使用pct_change

df.pct_change(axis='columns')

这将输出从一列到另一列的“百分比变化”(根据您的问题)。不是将一列划分为另一列(似乎是您的示例)

这不是一种非常理想的方法,但却有效

df['diff_1_0']=abs(df[0]-df[1])/df[0]
df['diff_2_1']=abs(df[1]-df[2])/df[1]
df=df[['diff_1_0','diff_2_1']]

如果你有很多列,你可以把它做成下面这样的循环

column_count=df.shape[1]+1
column_names=df.columns
for columns in df:
    if columns==0:
        continue
    else:
        df.insert(columns, str('diff_'+str(column_count)), abs(df[columns-1]-df[columns])/df[columns-1])
        column_count=column_count+1
df=df.drop(column_names, axis=1)

希望有帮助

相关问题 更多 >

    热门问题