合并后删除重复行

2024-06-03 07:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将多个csv合并成一个,它给了我这样的复制品 以下是我尝试合并的csv示例:

在闪烁.csv在

account_id      kills   deaths  assists...(a couple more columns)
 1015           4        4      2
 1015           3        5      5

大多数csv都是这样的,里面有不同的数据。 这是合并的结果(不是我想要的)

^{pr2}$

它将数据保存为4的重复项,但account_id基本上都是重复的,那么如何将csv合并在一起而不具有4个重复行,但不将其视为所有重复项而保留帐户_id? 还有没有办法去掉专栏标题末尾的x和y?

下面是我尝试使用的python代码(但得到了我不想要的结果):

blink = pd.read_csv('blink.csv',keep_default_na=False,na_values=[""])
faithbian = pd.read_csv('faithbian.csv',keep_default_na=False,na_values=[""])
iceice = pd.read_csv('iceice.csv',keep_default_na=False,na_values=[""])
shadow = pd.read_csv('Shadow.csv',keep_default_na=False,na_values=[""])
y = pd.read_csv('y.csv',keep_default_na=False,na_values=[""])

df = pd.concat([blink,faithbian,iceice,shadow,y],axis=0).drop_duplicates()

a_df = pd.concat([df.groupby(['match_id'])['account_id'].apply(lambda x: "%s" % ', '.join(x.astype(str))),
df.groupby(['match_id'])['hero_id'].apply(lambda x: "%s" % ', '.join(x.astype(str))),
df.groupby(['match_id'])['kills','deaths','assists','xp_per_min','gold_per_min','hero_damage','hero_healing','tower_damage'].mean()],axis=1).drop_duplicates()

con_df = pd.merge(a_df, df, left_index=True, right_on='match_id').drop_duplicates()
    con_df.to_csv('out.csv')

Tags: csvidfalsedefaultdfreadmatchaccount