相关疑难解决方法(0)

在块中迭代列表的最"pythonic"方法是什么?

我有一个Python脚本,它将整数列表作为输入,我需要一次使用四个整数.不幸的是,我无法控制输入,或者我将它作为四元素元组列表传入.目前,我正在以这种方式迭代它:

for i in xrange(0, len(ints), 4):
    # dummy op for example code
    foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
Run Code Online (Sandbox Code Playgroud)

它看起来很像"C-think",这让我怀疑有更多的pythonic方式来处理这种情况.迭代后会丢弃该列表,因此无需保留.也许这样的事情会更好吗?

while ints:
    foo += ints[0] * ints[1] + ints[2] * ints[3]
    ints[0:4] = []
Run Code Online (Sandbox Code Playgroud)

但是,仍然没有"感觉"正确.: - /

相关问题:如何在Python中将列表拆分为大小均匀的块?

python optimization loops list chunks

449
推荐指数
15
解决办法
12万
查看次数

熊猫一次迭代多行重叠

我有一个 Pandas DataFrame,需要将其以 n 行的块形式输入下游函数(print在示例中)。块可能具有重叠的行。

让我们从一个虚拟的 DataFrame 开始:

d = {'A':list(range(1000)), 'B':list(range(1000))}
df=pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

在具有 1 行重叠的 2 行块的情况下,我有以下代码:

a = df.index.values[:-1]
for i in a:
    print(df.iloc[i:i+2])
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

...
       A    B
996  996  996
997  997  997
       A    B
997  997  997
998  998  998
       A    B
998  998  998
999  999  999
Run Code Online (Sandbox Code Playgroud)

这正是我想要的。

是否有更好/更快的方法来迭代 pandas.DataFrame 的 n 行块?

python iteration pandas

3
推荐指数
1
解决办法
2409
查看次数

如何将数据帧导出为 500 行块的 csv

我有一个大型数据框,我将其导出为 CSV 并上传到第三方产品。第三方产品只能接受最多 500 行数据的上传,因此我想知道如何将数据帧导出到较小的文件中。

目前我的代码如下:

df.to_csv("Export.csv",index=False)
Run Code Online (Sandbox Code Playgroud)

但理想情况下希望代码能够导出文件,以便它给出:

Export1.csv
Export2.csv
Export3.csv
Run Code Online (Sandbox Code Playgroud)

等等,直到全部完成并且每行有 500 行(然后是剩下的)。任何帮助将非常感激!

python pandas

1
推荐指数
1
解决办法
3301
查看次数

标签 统计

python ×3

pandas ×2

chunks ×1

iteration ×1

list ×1

loops ×1

optimization ×1