我会展示我的 csv。我正在使用来自 python 的熊猫并捆绑清理我的 csv。
这是我的问题
我希望我的结果看起来像这样
我知道我只需要摆脱我认为的一些重复项,但我不知道如何使用 pandas。
我尝试了一些不同的方法,例如重置索引和排序以及使用 dropna 函数,但它们似乎没有用。
您可以使用
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 |
你可以这样做:
df = df.groupby('Name').sum()
文档在这里:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html