csv 如何删除pandas列中的重复值?

e5nqia27  于 2023-05-11  发布在  其他
关注(0)|答案(2)|浏览(187)

我给你看我的CSV。我正在使用python的pandas和tiing来清理我的csv。
我的问题是

我希望我的结果是这样的

我知道我只是需要摆脱一些重复的我想,但我不知道如何与Pandas。
我尝试了一些不同的方法,比如重置索引和排序,以及使用dropna函数,但它们似乎都不起作用。

ac1kyiln

ac1kyiln1#

您可以使用groupbysum的组合来消除行的重复数据,方法是:

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

假设你的pandas dataframe被称为df,并且dataframe中没有其他列。
下面是一个工作示例:

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 |
evrscar2

evrscar22#

您可以使用以下方式实现:

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

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

相关问题