繁体   English   中英

在python中添加嵌套列

[英]Addition with nested columns in python

我有一个 Pandas groupby 对象,它是从一个更大的数据帧中创建的,其中的金额分组在一个人 ID 变量下,以及它是传入还是传出交易。 这是一个例子:

ID In_Out Amount
1 In 5
1 Out 8
2 In 4
2 Out 2
3 In 3
3 Out 9
4 Out 8

(对不起,我不知道如何放入实际的样本数据)。 请注意,有些人可以有一个或另一个(例如,也许他们有一些出去但没有进来)。

我想要去的只是得到金额的差异,倒在人的下面。 因此,理想的输出可能是字典或其他数据框,其中包含每个人的数量差异,如下所示:

ID Difference
1 -3
2 2
3 -6
4 -8

我尝试了几种不同的方法来做到这一点,但我不确定如何在 python 中使用这些嵌套列表。

谢谢!

我们可以选择 Out 的行并将它们转换为负整数,然后使用 sum()。

import pandas as pd

s = '''\
ID In_Out Amount
1  In     5
1  Out    8
2  In     4
2  Out    2
3  In     3
3  Out    9
4  Out    8'''

# Recreate dataframe
df = pd.read_csv(pd.compat.StringIO(s), sep='\s+')

# Select rows where In_Out == 'Out' and multiple by -1
df.loc[df['In_Out'] == 'Out', 'Amount'] *= -1

# Convert to dict
d = df.groupby('ID')['Amount'].sum().to_dict()
print(d)

返回:

{1: -3, 2: 2, 3: -6, 4: -8}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM