我有一个包含['join key', 'code', 'A', 'B', 'C', 'D']
列的数据帧。在
join key
是一个长字符串,而code
可以等于521539或其他一组数字。在
可以存在具有相同join key
的行。在
我希望能够按join key
对我的记录进行分组,并且只有那些出现在我的数据帧中的重复记录,code
字段同时设置为521和539。在
我不希望那些记录可能具有相同的键和code=521
,但没有{
一旦我有了所有的重复项对,我想应用一个函数,compute(x)
,它将把这一对合并到一个由code=521
行中的['A', 'B']
列和包含{['C', 'D']
列组成的一行。在
我似乎无法选择正确的行。我一直选择那些在join key
上重复的行,但是它们都是相同的代码,没有对应的代码。在
import pandas as pd
exp_csv = pd.DataFrame([[3566190983, 521, 1, 2, 3, 4], \
[3566190983, 539, 1, 2, 3, 4], \
[3509730366, 521, 1, 2, 3, 4], \
[3509730366, 521, 1, 2, 3, 4], \
[3509730366, 521, 1, 2, 3, 4], \
[9809730686, 500, 1, 2, 3, 4]],\
columns=['join key', 'code', 'A', 'B', 'C', 'D'])
interim = exp_csv[exp_csv.duplicated(['join key'], keep=False)]
interim = interim.loc[(interim['code'] == 521) | (interim['code'] == 539)]
interim = interim.groupby(by='join key').apply(lambda x: compute(x))
我相信您需要比较} 筛选:
set
s并按^{相关问题 更多 >
编程相关推荐