【发布时间】:2019-12-29 22:28:37
【问题描述】:
我正在尝试将函数应用于此数据框中的特定列
datetime PM2.5 PM10 SO2 NO2
0 2013-03-01 7.125000 10.750000 11.708333 22.583333
1 2013-03-02 30.750000 42.083333 36.625000 66.666667
2 2013-03-03 76.916667 120.541667 61.291667 81.000000
3 2013-03-04 22.708333 44.583333 22.854167 46.187500
4 2013-03-06 223.250000 265.166667 116.236700 142.059383
5 2013-03-07 263.375000 316.083333 97.541667 147.750000
6 2013-03-08 221.458333 297.958333 69.060400 120.092788
我正在尝试将此函数(如下)应用于上述数据帧的特定列(PM10):
range1 = [list(range(0,50)),list(range(51,100)),list(range(101,200)),list(range(201,300)),list(range(301,400)),list(range(401,2000))]
def c1_c2(x,y):
for a in y:
if x in a:
min_val = min(a)
max_val = max(a)+1
return max_val - min_val
其中“x”可以是任意列,“y”= Range1
可用选项
df.PM10.apply(c1_c2,args(df.PM10,range1),axis=1)
df.PM10.apply(c1_c2)
我已经尝试了这几个可用的选项,但它们似乎都不起作用。有什么建议吗?
【问题讨论】:
-
x和y相对于PM10列是什么? -
x = PM10 或任何其他列,并且 y = range1。
标签: python-3.x pandas function apply