Python 在具有多种条件的熊猫中创建箱线图

Python 在具有多种条件的熊猫中创建箱线图,python,pandas,dataframe,boxplot,Python,Pandas,Dataframe,Boxplot,时间xco2 lon横向遮罩前标志alt类型 时间 2016-07-18 18:00:40 64835.00 400.345876-77.665768 40.444690 1.00 2.0 0.00 3198.345000温暖 2016-07-18 18:00:50 64845.00 400.694926-77.679259 40.450737 0.98 2.0.00 3199.400000温暖 2016-07-18 18:01:0064855.00401.107295-77.69271540.

时间xco2 lon横向遮罩前标志alt类型
时间
2016-07-18 18:00:40 64835.00 400.345876-77.665768 40.444690 1.00 2.0 0.00 3198.345000温暖
2016-07-18 18:00:50 64845.00 400.694926-77.679259 40.450737 0.98 2.0.00 3199.400000温暖
2016-07-18 18:01:0064855.00401.107295-77.69271540.456796 0.982.0.003197.810000温暖
2016-07-18:01:1064865.00401.566160-77.706165 40.462843 0.95 2.0.003196.500000温暖
2016-07-18:01:20 64875.00 401.752364-77.719628 40.468837 1.00 2.0 0.00 3197.945000温暖
...	...	...	...	...	...	...	...	...	...
2016-07-18 18:50:30 67825.00391.580408-80.799363 41.847582 0.81南0.003158.575000冷
2016-07-18 18:50:40 67835.00 392.728223-80.809320 41.851846 1.00南0.003241.930000冷
2016-07-18 18:50:50 67845.00 392.051042-80.819123 41.855974 0.43南1.14 3340.510000冷
2016-07-18 18:51:0067855.00392.827331-80.82873541.860006 1.00NAN0.003428.665000冷
2016-07-18 18:51:1067862.95392.934952-80.83641541.863085 1.00NAN0.003483.171186冷
304行×9列
方法1: 您可以做的是创建一个新列,用pd.cut来bucket“lat”

df_layer102['lat_bucketed'] = pd.cut(df_layer102['lat'], numpy.append(warm, cold))
这里,温暖和寒冷是结合在一起的,因为它们不重叠,并且已经有一列指示
cold
warm
。但你可以一个一个地挑


方法2: 这也可以使用手动完成

df_layer102['lat_bucketed'] = ((df_layer102['lat'] - df_layer102['lat'].min())/0.5).astype(int)

这将为您提供一个包含bucket索引的列(例如0、1、2等)


然后,使用seaborn,您可以

import seaborn as sns
sns.set(style="whitegrid")
ax = sns.boxplot(x="lat_bucketed", y="XCO2", data=df_layer102)

可以我刚刚补充了我目前的做法,你可以试试seaborn,看看是否适合你的需要:我也试过了。我是一个新手,所以我不确定是否有一种更快的方法可以在这些条件下创建一个新的数据帧,或者在实际的箱线图代码中使用另一种方法。非常感谢!!你是救命恩人!