如何简洁实现Pandas DataFrame批量复制?类似字符串乘法的方法
如何简洁地重复Pandas DataFrame多次
嘿,完全理解你的需求!就像字符串乘法那样一行搞定DataFrame重复,确实比手动在pd.concat里写一堆df要高效太多,尤其是重复次数多的时候。这里有两种简洁的方法可以实现:
方法1:利用列表乘法 + pd.concat
这应该是最接近你想要的“字符串乘法”风格的写法,通过把DataFrame放到列表里再做乘法,然后用concat合并:
import pandas as pd # 先创建你的原始DataFrame df = pd.DataFrame({ 'col1': ['a', 'b', 'c', 'd', 'e'], 'col2': [1, 2, 3, 4, 5] }) # 重复4次,ignore_index=True用来重置索引,避免出现重复的行索引 repeated_df = pd.concat([df] * 4, ignore_index=True)
这样不管你要重复20次还是更多,只需要把4改成对应的数字就行,超级方便!
方法2:利用索引重复 + loc
另一种思路是让原始DataFrame的索引重复指定次数,然后通过loc提取对应的行:
repeated_df = df.loc[df.index.repeat(4)].reset_index(drop=True)
df.index.repeat(4)会把每个原始索引重复4次,比如原始索引是0,1,2,3,4,重复后就变成0,0,0,0,1,1,1,1,...,再用loc取出这些索引对应的行,最后reset_index(drop=True)重置索引就得到你想要的结果了。
两种方法都能得到完全一样的输出,选你觉得更顺手的就行~
内容的提问来源于stack exchange,提问作者Mohamed Thasin ah
相关产品推荐
相关产品推荐

