合并包含空白单元格和Pandas中重复项的行

时间:2019-10-30 19:14:24

标签: python excel pandas csv

我希望使用Python Pandas将行合并到一个大型Excel文件中。假设在Excel或csv文件中,我有:

Kelly | $400 |      |      | $20 |
Kelly |      | $200 |      |     |
Kelly |      |      | $500 |     |
John  |      |  $2  | ($7) |     |
John  |      |      |      | $10 |

我想结束:

Kelly | $400 | $200 | $500 | $20 |
John  |      |  $2  | ($7) | $10 |

有一个简单的解决方案吗?预先感谢。

1 个答案:

答案 0 :(得分:1)

听起来您正在寻找groupby

import pandas as pd
import numpy as np

df = pd.DataFrame(
data={'Name' : ['Kelly', 'Kelly', 'Kelly', 'John', 'John'],
                   'col1' : [400, np.nan, np.nan, np.nan, np.nan],
                   'col2' : [np.nan, 200, np.nan, 2, np.nan],
                   'col3' : [np.nan, np.nan, 500, -7, np.nan],
                   'col4' : [20, np.nan, np.nan, np.nan, 10],})

print(df)

    Name   col1   col2   col3  col4
0  Kelly  400.0    NaN    NaN  20.0
1  Kelly    NaN  200.0    NaN   NaN
2  Kelly    NaN    NaN  500.0   NaN
3   John    NaN    2.0   -7.0   NaN
4   John    NaN    NaN    NaN  10.0


print(df.groupby('Name').sum())

输出:

        col1   col2   col3  col4
Name                            
John     0.0    2.0   -7.0  10.0
Kelly  400.0  200.0  500.0  20.0

编辑:如果您仅获得第一列的总和,则其他列的数据类型可能是非数字的。如果将groupby应用于整个数据帧,则每一列都会产生聚合函数结果。尝试使用df.info()来查看您的列是什么数据类型。