gpt4 book ai didi

python - 值错误 : cannot reindex from a duplicate axis

转载 作者:行者123 更新时间:2023-11-28 21:11:31 26 4
gpt4 key购买 nike

假设我有两个数据框:

import string
import pandas as pd

d = {'one': pd.Series(range(26), index = list(string.ascii_lowercase)),
'two': pd.Series([1., 2., 3., 4.], index = ['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)

d2 = {'one': pd.Series(range(10), index = range(11, 21))}
df2 = pd.DataFrame(d2)

现在,我有一个索引列表:

np.random.seed(12)
i = np.random.choice(np.arange(11, 21), size = 26)

现在我想加入df2和基于idf1

df['new_col'] = df2['one'][i]

但是我得到了上面提到的错误。解决此问题的一种方法是将 i 直接添加到 df1,并在 df2 中创建一个名为 i 的列来表示index,然后做一个merge,但是看起来效率很低。有更好的方法吗?

我知道有几个标题相同的问题,但没有一个对我的情况有任何帮助。

最佳答案

您可以使用 tolist 方法将您的 df2.one 转换为列表,然后将其分配给 df['new_col']:

df['new_col'] = df2['one'][i].tolist()

编辑

或者你可以使用 .values 属性作为 @ajcr 在评论中建议的更快:

df['new_col'] = df2['one'][i].values

时间

In [100]: %timeit df2.one[i].tolist()
1000 loops, best of 3: 275 µs per loop

In [101]: %timeit df2.one[i].values
1000 loops, best of 3: 252 µs per loop

关于python - 值错误 : cannot reindex from a duplicate axis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35257743/

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