我想聚合一个dataframe-获取每个组的第一行,同时连接列'upc'中的值:
df = pd.DataFrame({
'id1': [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 6, 7, 7],
'id2': [11, 22, 11, 11, 22, 33, 33, 33, 33, 44, 44, 55, 66, 66, 22, 77, 77],
'value1': ["1first", "1second", "1third",
"2first", "2second",
"3first", "3second", "3third", "3fourth",
"4first", "4second",
"5first",
"6first", "6second", "6third",
"7first", "7second"],
'upc': [str(x) for x in range(100, 117)]
})
firsts_df = df.groupby(['id1', 'id2']).first()
concat_upcs_df = df[['id1', 'id2', 'upc']].groupby(['id1', 'id2']).apply(lambda x: '|'.join(x.upc))
firsts_df.merge(concat_upcs_df, how='inner',left_on=['id1', 'id2'], right_on=['id1', 'id2'])
这将导致以下错误:
ValueError: can not merge DataFrame with instance of type class 'pandas.core.series.Series'
如何将聚合结果与数据帧合并? 我能用更便宜的手术得到同样的结果吗?在
我认为^{cd1>}到^{cd2>}并将^{cd3>}添加到^{cd4>}以^{cd5>}s:
您也可以使用^{} 代替^{{cd2>}和^{cd8>}而不使用^{cd9>},也可以使用^{} 处理^{cd11>},因为左、右连接的列相同:
^{pr2}$相关问题 更多 >
编程相关推荐