我已经合并了两个数据框,但是现在有重复的行。我想将行移动到基于/按列值分组的列。
我已经合并了两个数据框:
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]})
这将使删除重复项变得更加容易。我也尝试过使用dropplicate pandas函数,但无济于事。
答案 0 :(得分:0)
如果您只想删除重复项,我认为应该使用.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