我有一个像这样的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)
答案 0 :(得分:1)
你可以。这是一个列表理解来做到这一点。由于这个问题的固有特性,你真的无法对此进行矢量化。
df['values'] = [
list(range(x, y + 1)) for x, y in zip(df['min'], df['max'])
]