我有一个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)
但是,仍然没有"感觉"正确.: - /
我有一个 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 行块?
我有一个大型数据框,我将其导出为 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 行(然后是剩下的)。任何帮助将非常感激!