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

Python 断言数据帧记录的附加参数,python,pandas,dataframe,data-science,Python,Pandas,Dataframe,Data Science,我得到了一个相当大的熊猫数据帧(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"] 但这似乎不起作用,或者对我来说调试起来太难了。(也非常耗时) 我基本上没有主意了,希望你们能

我得到了一个相当大的熊猫数据帧(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"]

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

我基本上没有主意了,希望你们能帮我:)

用于直接将
sub\u-uid
分配给
main\u-df
,而不创建
sub\u-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

为什么不合并
v1
v2
上的两个数据帧呢?@Parfait是的,就是这样。合并解决了这个问题。谢谢这似乎足够了,但需要将UID重新划分为自定义字符串。GroupBy.groups可能会使用生成的字典来完成这项工作。我稍后会调查,现在我会坚持合并冻糕建议的内容。我对你问题的理解是,你只有
main\u df
,你想在它后面附加
sub\u uid
。因此,我为您提供了一种直接的方法,避免创建中间
sub_df
,并使用
merge
达到我已经达到的位置。
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