gpt4 book ai didi

python - 替换 DF 中的单元格,其中 DF 的单元格是其他 DF 中所需行的索引

转载 作者:太空宇宙 更新时间:2023-11-04 04:15:50 29 4
gpt4 key购买 nike

在 df1 中,每个单元格值都是我想要从 df2 中获取的行的索引。

我想获取 df2 trial_ms 列中行的信息,然后根据获取的 df2 列重命名 df1 中的列。

可重现的 DF:

# df1

nan = np.NaN
df1 = {'n1': {0: 1, 1: 2, 2: 8, 3: 2, 4: 8, 5: 8},
'n2': {0: nan, 1: 3.0, 2: 9.0, 3: nan, 4: 9.0, 5: nan},
'n3': {0: nan, 1: nan, 2: 10.0, 3: nan, 4: nan, 5: nan}}

df1 = pd.DataFrame().from_dict(df1)

# df2

df2 = {
'trial_ms': {1: -18963961, 2: 31992270, 3: -13028311},
'user_entries_error_no': {1: 2, 2: 6, 3: 2},
'user_entries_plybs': {1: 3, 2: 3, 3: 2},
'user_id': {1: 'seb', 2: 'seb', 3: 'seb'}}

df2 = pd.DataFrame().from_dict(df2)

预期输出:

**n1_trial_ms      n2_trial_ms          n3_trial_ms**

31992270 NaN NaN
-13028311 -18934961 NaN

etc.

尝试:

for index, row in ch.iterrows():
print(row)
b = df1.iloc[row]['trial_ms']

给我错误:

IndexError: positional indexers are out-of-bounds

最佳答案

我相信您需要来自 trial_ms 列的字典 - 键是 df1 的索引并用 get 替换值,如果不匹配的值是 get缺失值 NaN:

d = df2['trial_ms'].to_dict()
df3 = df1.applymap(lambda x: d.get(x, np.nan)).add_suffix('_trial_ms')
print (df3)
n1_trial_ms n2_trial_ms n3_trial_ms
0 -18963961.0 NaN NaN
1 31992270.0 -13028311.0 NaN
2 NaN NaN NaN
3 31992270.0 NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN

关于python - 替换 DF 中的单元格,其中 DF 的单元格是其他 DF 中所需行的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55449748/

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