带有迭代的 Pandas DataFrame 切片
Posted
技术标签:
【中文标题】带有迭代的 Pandas DataFrame 切片【英文标题】:Pandas DataFrame slicing with iteration 【发布时间】:2018-04-30 10:39:41 【问题描述】:我想对具有多个切片索引的切片 DataFrame 执行一些操作。模式是 df.iloc[0:24] , df.iloc[24:48] , df.iloc[48:72] 等等,你得到它的第 24 步。我如何迭代它而不每次都手动设置它。更像 df.iloc[x:z] ,每次迭代 x=0,z=24 和下一次迭代 24 步,x 将是 24,z=48 等等。 提前致谢, 赫里斯托。
【问题讨论】:
df.iloc[::24]
这是一个非常基本的索引问题,你真的应该查看切片符号。
不,不。伙计,我切片没有问题。但是我需要 0-24 的特定数据帧切片部分并执行一些操作,然后 df[24:48] 并对该切片部分执行一些操作,因此我需要迭代每个切片的 DF 并执行一些操作。
啊,好吧。道歉。
【参考方案1】:
for
循环迭代
for i in range(0, len(df), 24):
slc = df.iloc[i : i + 24]
groupby
df.groupby(df.index // 24 * 24).apply(your_function)
【讨论】:
+ 1 表示for循环,只是想说明一下:‘slc’是包含迭代的切片数据帧,所以所有操作都对‘slc’执行【参考方案2】:输出它会给 df
for i in range(0,len(df)):
dfnew = df.iloc[i : i + 42]
i = i + 1
print(dfnew)
0 到 41 个索引数据 1 至 42 2 至 43 通过跳过第一行,限制为 42 行数据。
【讨论】:
以上是关于带有迭代的 Pandas DataFrame 切片的主要内容,如果未能解决你的问题,请参考以下文章
解析嵌套的 JSON 并迭代到 Pandas Dataframe
将 Pandas DataFrame 切片成新的 DataFrame