2024-05-15 00:00:28 发布
网友
假设我有一个数据帧:
df = pd.DataFrame([[3, 2, 1], [5, 4, 2]]) 3 2 1 5 4 2
我想返回一个数据帧,其中一列到下一列的百分比变化。因此,上述数据集将返回:
.666 .5 .8 .5
我如何在熊猫身上做到这一点
熊猫有这样的功能。使用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)
希望有帮助
熊猫有这样的功能。使用pct_change:
这将输出从一列到另一列的“百分比变化”(根据您的问题)。不是将一列划分为另一列(似乎是您的示例)
这不是一种非常理想的方法,但却有效
如果你有很多列,你可以把它做成下面这样的循环
希望有帮助
相关问题 更多 >
编程相关推荐