断言 pandas 数据帧记录的附加参数

assert additional parameter to pandas dataframe records

我得到了一个相当大的 pandas 数据框(5k 行,30 列)。我需要按照以下说明进行操作。我试过了

pseudocode

for i in main_df.iterrows():
    for j in sub_df.iterrows():
        if j == part of i:
            i["sub_uid"] = j["sub_uid"]

但这似乎不起作用,或者对我来说太难调试了。 (也非常耗时)

我基本上没有想法,希望得到你们的帮助:)

    main_df:
        v1  v2  vx3 vx4
    1   a   b   h   j
    2   a   b   n   p
    3   a   c   r   g
    4   d   e   p   j
    
    sub_df: take only part of main_df columns, drop duplicates. Assign uids for all combinations of v1 v2 parameters
        v1  v2  sub_uid
    1   a   b   01
    2   a   c   02
    3   d   e   03
    
    now back to main_df: add a column for sub_uids. For each record, determine sub_uid using sub_df
        v1  v2  vx3 vx4 sub_uid
    1   a   b   h   j   01
    2   a   b   n   p   01
    3   a   c   r   g   02
    4   d   e   p   j   03

使用Groupby.ngroup直接将sub_uid赋值给main_df而不创建sub_df:

In [2473]: df['sub_uid'] = df.groupby(['v1', 'v2']).ngroup().add(1)

In [2474]: df
Out[2474]: 
  v1 v2 vx3 vx4  sub_uid
1  a  b   h   j        1
2  a  b   n   p        1
3  a  c   r   g        2
4  d  e   p   j        3