gpt4 book ai didi

python - 用于复制一行以填充 DataFrame 的 Pandas

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:32 26 4
gpt4 key购买 nike

我陷入了死胡同,我正在使用一些绝对不是 Pandas 的代码来完成 Pandas 中本应非常简单的任务。我相信有更好的方法。

我有一个 DataFrame,我将从中提取一行并创建一个新的 DataFrame,如下所示:

>>> sampledata
float_col int_col str_col r v new_coltest eddd
0 0.1 1 a 5 1.0 0.1 -0.539783
1 0.2 2 b 5 NaN 0.2 -1.394550
2 0.2 6 None 5 NaN 0.2 0.290157
3 10.1 8 c 5 NaN 10.1 -1.799373
4 NaN -1 a 5 NaN NaN 0.694682
>>> newsampledata = sampledata[(sampledata.new_coltest == 0.1) & (sampledata.float_col == 0.1)]
>>> newsampledata
float_col int_col str_col r v new_coltest eddd
0 0.1 1 a 5 1.0 0.1 -0.539783

我想做的是将“newsampledata”中的那一行复制 n 次,其中 n 是一个已知整数。理想情况下,带有 n 行的最终 DataFrame 会覆盖一行“newsampledata”,但这在任何方面都不重要。

我目前正在使用 for 循环执行 pd.concat n-1 次以填充 DataFrame,但由于 concat 有效。我也尝试过使用 append 代替相同类型的策略,这比 concat 稍慢。

我看到过一些关于类似项目的其他问题,但很多人以前从未见过这个确切的问题。此外,由于性能问题,我已远离 map/apply,但如果您发现此方法具有良好的性能,请告诉我,我也会尝试这样做。

TIA

最佳答案

我想你可以用替换来采样

newsampledata.sample(n, replace=True).reset_index(drop=True)

或使用reindex

newsampledata.reindex(newsampledata.index.repeat(n)).reset_index(drop=True)

关于python - 用于复制一行以填充 DataFrame 的 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40989855/

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