如何去除 pandas 列中的重复值?

问题描述 投票:0回答:2

我会展示我的 csv。我正在使用来自 python 的熊猫并捆绑清理我的 csv。

这是我的问题

我希望我的结果看起来像这样

我知道我只需要摆脱我认为的一些重复项,但我不知道如何使用 pandas。

我尝试了一些不同的方法,例如重置索引和排序以及使用 dropna 函数,但它们似乎没有用。

python pandas dataframe csv data-cleaning
2个回答
0
投票

您可以使用

groupby
sum
的组合来删除重复的行,使用:

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

假设你的熊猫数据框被称为

df
并且数据框中没有其他列。

这是一个工作示例:

import pandas as pd
import numpy as np

points = [np.NaN, 20, np.NaN, 1]
rebounds = [21, np.NaN, np.NaN, 300]
assists = [np.NaN, np.NaN, 3, np.NaN]
name = ['Andrew W', 'Andrew W', 'Andrew W', 'Hello World']

data = {
    'name': name,
    'points': points,
    'rebounds': rebounds,
    'assists': assists
}

df = pd.DataFrame(data)
print(df.to_markdown(index=False))

agg_df = df.groupby('name').sum()
print(agg_df.to_markdown())

聚合前的DataFrame

| name        |   points |   rebounds |   assists |
|:------------|---------:|-----------:|----------:|
| Andrew W    |      nan |         21 |       nan |
| Andrew W    |       20 |        nan |       nan |
| Andrew W    |      nan |        nan |         3 |
| Hello World |        1 |        300 |       nan |

聚合后的DataFrame

| name        |   points |   rebounds |   assists |
|:------------|---------:|-----------:|----------:|
| Andrew W    |       20 |         21 |         3 |
| Hello World |        1 |        300 |         0 |

0
投票

你可以这样做:

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

文档在这里:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html

© www.soinside.com 2019 - 2024. All rights reserved.