【问题标题】:Select every n values in pandas column选择 pandas 列中的每 n 个值
【发布时间】:2018-01-11 03:04:26
【问题描述】:

我想从每 3 个值的列中进行选择。

例如:

  Input
   12 
   73
   56 
   33
   16


                  output
                    12
                    73
                    56 
                    ------
                    73
                    56
                    33
                    -----
                    56
                    33
                    16

我尝试添加一个关键列并按它进行分组,但我的数据框太大而无法执行分组。这是我的尝试:

df.groupby('key').agg(lambda x: x.tolist())

【问题讨论】:

  • 我不明白你想要的输出。新列中的行数不会是其他列的 3 倍吗?
  • 您需要输出与表中的其他数据相关联吗?有了列表,这将非常容易。
  • 不完全是 3 倍,而是窗口滑动次数乘以窗口大小 (=3)。这就是我想要的。
  • 它不必与其他数据相关。

标签: python pandas indexing


【解决方案1】:

如果使用列表类型,你可以这样做:

lst = [12,73,56,33,16]
slide_size=3
result = []

for i in range(0,len(lst)-slide_size+1):
    result.append(lst[i:i+3])

result

# output : [[12, 73, 56], [73, 56, 33], [56, 33, 16]]

在此之后,您可以将列表转换为DataFrame

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-27
    • 2017-12-13
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 2020-02-04
    相关资源
    最近更新 更多