如何通过遍历另一个数据框的行来填充特定索引和列处的数据框?

时间:2020-10-29 13:59:33

标签: python python-3.x list dataframe

我有一个名为user_follow的数据框,看起来像这样。

followerId  followingId

abc1998     abc1997
abc1998     abc1991
abc1998     abc1992
abc1998     abc1994
abc1998     abc1995
abc1998     abc1996
abc1998     abc2035

“ followerId”和“ followingId”是各种用户的ID。我还有另一个列表uniqueUsers,其中有一个列表,共有近100个用户。

我创建了一个数据框df,其中所有0个值以及索引和行均作为uniqueUsers的元素。

          abc2003 abc2022 abc2023 ... abc1997 abc1998 abc2035 abc1996   
abc2003     0       0       0     ...   0       0       0        0
abc2022     0       0       0     ...   0       0       0        0
abc2023     0       0       0     ...   0       0       0        0
abc2024     0       0       0     ...   0       0       0        0
abc2027     0       0       0     ...   0       0       0        0
.
.
.

因此,上述数据框具有100行和100列。

我想通过遍历数据帧df来填充上面的数据帧user_follow。对于user_follow中的每个(followerId,followingId),我想在上述数据帧df的对应(行,列)中填充'1'。在这里,行/索引和列是uniqueUsers列表中的唯一用户。

对此有任何帮助吗?

2 个答案:

答案 0 :(得分:0)

我不确定您希望如何使用输出表,但以下方法可能会解决问题。只需尝试:

output_table = pd.crosstab(user_follow.followerId, user_follow.followingId)

或者,对于更复杂的填充,您可以将iterrows的{​​{1}}方法用作

pd.DataFrame

答案 1 :(得分:0)

如果您确实要更新uniqueuser数据框,则可以通过以下方式进行操作:

for row in user_follow.itertuples():
    uniqueuser.loc[row[1]][row[2]] = 1