gpt4 book ai didi

python - 使用二维 numpy 数组有效填充 pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:01 25 4
gpt4 key购买 nike

我有一个二维 numpy 数组,每行由三个元素组成 - ['dataframe_column_name', 'dataframe_index', 'value']。现在,我尝试使用 iloc double for 循环填充 pandas 数据框,但速度相当慢。有没有更快的方法来做到这一点。我对 Pandas 有点陌生,所以很抱歉,如果这是非常基本的东西。这是代码片段:

my_nparray = [['a', 1, 123], ['b', 1, 230], ['a', 2, 321]]
for r in range(my_nparray.shape[0]):
[col, ind, value] = my_nparray[r]
df.iloc[col][ind] = value

当 my_nparray 很大时,这需要很多时间,还有其他方法吗?

最初假设我可以创建这个数据框:

  'a' 'b'
1 NaN NaN
2 NaN NaN

我希望输出为:

  'a' 'b'
1 123 230
2 321 NaN

最佳答案

您可以使用from_records然后pivot :

df = pd.DataFrame.from_records(my_nparray, index=1).pivot(columns=0)

2
0 a b
1
1 123.0 230.0
2 321.0 NaN

这指定索引使用数组中的字段 1,而数据透视表使用系列 0 作为列。

然后我们可以重置列上的 MultiIndex 和索引:

df.columns = df.columns.droplevel(None)
df.columns.name = None
df.index.name = None

a b
1 123.0 230.0
2 321.0 NaN

关于python - 使用二维 numpy 数组有效填充 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616310/

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