Python 2.7 如何基于行计算将新列附加到我的数据帧?
假设我有一个包含两列的Pandas数据框:1)user_id,2)steps(包含给定日期的步骤数)。现在,我想计算步骤数和前面测量中的步骤数之间的差值(保证在我的数据帧中测量是有序的) 因此,基本上这可以归结为在我的数据框中追加一个额外的列,其中该数据框的行值与该行中“steps”列的值相匹配,减去上面一行中“steps”列的值(如果这是第一行,则为0)。为了使事情进一步复杂化,我想计算每个用户id的差异,所以我想确保不减去具有不同用户id的两行的步长值 有人知道如何使用Python2.7和Panda完成这项工作吗 因此,我们举一个例子来说明这一点 输入示例:Python 2.7 如何基于行计算将新列附加到我的数据帧?,python-2.7,pandas,Python 2.7,Pandas,假设我有一个包含两列的Pandas数据框:1)user_id,2)steps(包含给定日期的步骤数)。现在,我想计算步骤数和前面测量中的步骤数之间的差值(保证在我的数据帧中测量是有序的) 因此,基本上这可以归结为在我的数据框中追加一个额外的列,其中该数据框的行值与该行中“steps”列的值相匹配,减去上面一行中“steps”列的值(如果这是第一行,则为0)。为了使事情进一步复杂化,我想计算每个用户id的差异,所以我想确保不减去具有不同用户id的两行的步长值 有人知道如何使用Python2.7和P
user_id steps
1015 48
1015 23
1015 79
1016 10
1016 20
期望输出:
user_id steps d_steps
1015 48 0
1015 23 -25
1015 79 56
2023 10 0
2023 20 10
您的输出显示不在原始数据中的用户ID,但以下内容符合您的要求,您必须用0替换/填充
NaN
值:
In [16]:
df['d_steps'] = df.groupby('user_id').transform('diff')
df.fillna(0, inplace=True)
df
Out[16]:
user_id steps d_steps
0 1015 48 0
1 1015 23 -25
2 1015 79 56
3 1016 10 0
4 1016 20 10
在这里,我们通过调用groupby对象生成所需的列,并传递一个字符串,该字符串映射到减去前一行值的方法。Transform应用一个函数并返回一个索引与df对齐的序列。通常有助于给出一个具体的示例,其中包含输入和所需的输出,人们可以复制和粘贴,而不是依赖于描述。同意!我添加了一个示例:)