获取python 3中两个值之间的所有值

时间:2018-04-05 09:23:25

标签: python python-3.x pandas

我有一个像这样的pandas DataFrame:

       min      max
  1.  10186     10186
  2.  10197     10197
  3.  10199     11142
  4.  11144     11654
  5.  11656     13498
  6.  13500     13977
  7.  13979     14442
  8.  14445     14446
  9.  14448     14449

我可以获得每个最小值和最大值之间的所有值,包括这些值吗?

示例输出:

10186
10197
10199, 10200, 10201, 10202 etc.

我怎样才能做到这一点?这是一个包含超过10k记录的大文件。任何头脑也会有所帮助。我现在一无所获。我现在的代码:

import pandas as pd
avrange = pd.read_excel('C:\\Users\\Desktop\\apvdcorrection.xlsx')

df1 = pd.DataFrame(avrange, columns = ['avmin', 'avmax'])
df2 = df1[df1.avmin != 0]
df2 = df2[df2.avmax != -1]
df2 = df2.astype(int)

1 个答案:

答案 0 :(得分:1)

你可以。这是一个列表理解来做到这一点。由于这个问题的固有特性,你真的无法对此进行矢量化。

df['values'] = [
    list(range(x, y + 1)) for x, y in zip(df['min'], df['max'])
]