带有迭代的 Pandas DataFrame 切片

Posted

技术标签:

【中文标题】带有迭代的 Pandas DataFrame 切片【英文标题】:Pandas DataFrame slicing with iteration 【发布时间】:2018-04-30 10:39:41 【问题描述】:

我想对具有多个切片索引的切片 DataFrame 执行一些操作。模式是 df.iloc[0:24] , d​​f.iloc[24:48] , d​​f.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 切片的主要内容,如果未能解决你的问题,请参考以下文章

带有 MultiIndex Pandas 面板的切片函数

解析嵌套的 JSON 并迭代到 Pandas Dataframe

将 Pandas DataFrame 切片成新的 DataFrame

按行切片 Pandas DataFrame

切片 pandas 的 MultiIndex DataFrame

Python pandas DataFrame的切片取值