基于另一列的行到列确定这是i

2024-09-28 23:23:06 发布

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

我已经合并了两个数据帧,但现在有重复的行。我想根据列值将行移动到列/按列值分组

我已经合并了两个数据帧:

df_merge = pd.merge(top_emails_df, keyword_df, on='kmed_idf')

新的数据帧如下所示:

import pandas as pd
df = pd.DataFrame({'kmed_idf': ['1', '1', '1', '2', '2'], 
               'n_docs': [796, 796, 796, 200, 200],
               'email_from: ['foo', 'foo', 'foo', 'bar', 'bar'})

我尝试堆叠数据帧:

newtest = df_merge.set_index(['kmed_idf']).stack(level=0)
newtest= newtest.to_frame()

但这只创造了一个系列。当转换为数据帧时,它仍然不是很有用

我想要的是一个数据帧,其中每一行都是“kmed_idf”的唯一值,现在这些行都是列。大概是这样的:

import pandas as pd
df = pd.Dataframe({'kmed_idf': ['1', '2', '3'],
                   'n_docs': [796],
                   'n_docs2': [796],
                   'n_docs3,: [796]})

这样可以更容易地删除重复项。我也尝试过使用drop duplicates pandas功能,但没有效果


Tags: 数据importdocspandasdffootopas
1条回答
网友
1楼 · 发布于 2024-09-28 23:23:06

如果您只想删除重复项,我认为.drop_duplicates函数应该是一种方法

我不知道为什么它对你不起作用,但请试试这个:

import pandas as pd

df = pd.DataFrame({'kmed_idf': ['1', '1', '1', '2', '2'],
                   'n_docs': [796, 796, 796, 200, 200],
                   'email_from': ['foo', 'foo', 'foo', 'bar', 'bar']})

df.drop_duplicates(inplace=True)

print(df)

输出:

  email_from kmed_idf  n_docs
0        foo        1     796
3        bar        2     200

相关问题 更多 >