Python 断言数据帧记录的附加参数
我得到了一个相当大的熊猫数据帧(5k行,30列)。我需要按照下面的描述做。我试过了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"] 但这似乎不起作用,或者对我来说调试起来太难了。(也非常耗时) 我基本上没有主意了,希望你们能
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