gpt4 book ai didi

python-3.x - 根据另一列中的匹配项填充 `Pandas.DataFrame` 中的列

转载 作者:行者123 更新时间:2023-12-04 08:30:11 31 4
gpt4 key购买 nike

我有一个 pd.DataFrame包含来自不同用户的推文和转发的对象。我想要完成的是填充一列 rt_uid (即转发用户 ID)与相应的 uid被转推的用户。所以所需的输出将是:
期望输出

   tw_id  tw_uid  rt_uid tw_uname rt_uname
0 0 10 12.0 u1 u3
1 1 10 12.0 u1 u3
2 2 12 NaN u3 None
3 3 13 NaN u4 None
4 4 14 10.0 u5 u1
5 5 15 10.0 u6 u1
6 6 16 10.0 u7 u1
7 7 16 NaN u7 None
8 8 16 NaN u7 None
9 9 12 13.0 u3 u4
栏目 rt_uid包含预先转发的用户的用户 ID。 Code 1用我的解决方案提供了一个数据集的玩具示例,但没有解决:
代码 1
import pandas as pd


tw_df = pd.DataFrame(dict(
tw_id=np.arange(10),
tw_uid=[10, 10, 12, 13, 14, 15, 16, 16, 16, 12],
rt_uid=[None]*10,
tw_uname=['u1', 'u1', 'u3', 'u4', 'u5', 'u6', 'u7', 'u7', 'u7', 'u3'],
rt_uname=['u3', 'u3', None, None, 'u1', 'u1', 'u1', None, None, 'u4'],
)
)
tw_df.loc[~tw_df.loc[:, 'rt_uname'].isnull(), 'rt_uid'] = tw_df.loc[tw_df.loc[:, 'tw_uname'].isin(tw_df.loc[:, 'rt_uname']), 'tw_uid']
tw_df
错误输出
enter image description here
如您所见, rt_uid列仅包含镜像 tw_uid柱子。
  • 我看过 this发布,但在我的情况下,我需要为所有用户名(可能会更改,重复等)而不是特定用户名过滤数据,因此无法在那里找到答案。

  • 我在这里缺少什么?提前致谢。

    最佳答案

    创建 tw_uname 的字典和 tw_uid使用 dict(zip()) .将字典映射到 rt_uname

    tw_df['rt_uid']=tw_df['rt_uname'].map(dict(zip(tw_df.tw_uname,tw_df.tw_uid)))



    tw_id tw_uid rt_uid tw_uname rt_uname
    0 0 10 12.0 u1 u3
    1 1 10 12.0 u1 u3
    2 2 12 NaN u3 None
    3 3 13 NaN u4 None
    4 4 14 10.0 u5 u1
    5 5 15 10.0 u6 u1
    6 6 16 10.0 u7 u1
    7 7 16 NaN u7 None
    8 8 16 NaN u7 None
    9 9 12 13.0 u3 u4

    关于python-3.x - 根据另一列中的匹配项填充 `Pandas.DataFrame` 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65064741/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com