Python 如何对不同列上的熊猫使用条件
我试图从所有航班中找出前五名的延误航线,然后统计所有导致延误的天气状况航班。 使用此代码,我可以获得前五条延迟路线Python 如何对不同列上的熊猫使用条件,python,pandas,Python,Pandas,我试图从所有航班中找出前五名的延误航线,然后统计所有导致延误的天气状况航班。 使用此代码,我可以获得前五条延迟路线 flights_df.groupby(['Origin','Dest','WeatherDelay', flights_df.DepDelay>0])['WeatherDelay'].count().sort_values(ascending=False).head(5) 数据帧 这是输出 Origin Dest WeatherDelay DepDel
flights_df.groupby(['Origin','Dest','WeatherDelay', flights_df.DepDelay>0])['WeatherDelay'].count().sort_values(ascending=False).head(5)
数据帧
这是输出
Origin Dest WeatherDelay DepDelay
LAX SFO 0.0 True 3261
ORD LGA 0.0 True 3136
ATL LGA 0.0 True 2900
SFO LAX 0.0 True 2889
LGA ORD 0.0 True 2640
Name: WeatherDelay, dtype: int64
我将如何设置WeatherDelay>0的条件以获得按天气排列的前5条路线延迟
关键是:我有起点和终点。我必须形成路线,然后找到延迟的路线数。此外,我还必须找到这5条航线因天气原因延误的航班数量。为了在索引时提供多个条件,您可以使用:
dataframe[(dataframe["column1"] > condition1) & (dataframe["column2"] > condition2)]
您可以使用&for和,| for或
您还可以查看
np.where()
在对数据帧进行分组之前,从数据帧中选择所需内容:
flights_df[(flights_df.DepDelay > 0) & (flights_df.WeatherDelay > 0)].groupby(['Origin','Dest','WeatherDelay'])['WeatherDelay'].count().sort_values(ascending=False).head(5)
将您的条件用括号括起来(flights\u df.DepDelay>0)和(flights\u df.WeatherDelay>0)
如果要按路线排列前5名,应按路线定义分组,在本例中,按起点和终点分组
df.fillna(0, inplace = True)
df[(df.DepDelay > 0) & (df.WeatherDelay > 0)].groupby(['Origin','Dest'])['Origin'].count().sort_values(ascending=False).head(5)
我冒昧地举了一个例子:
>>> mdf
Name Product Sale Number
0 jack Apples 34 1
1 Riti Mangos 31 2
2 Aadi Grapes 30 3
3 Sonia Apples 32 4
4 Lucy Mangos 33 5
5 Mike Apples 35 6
因此,如果Sale
大于31&Number
为ge 3,则打印数据帧
>>> mdf[ (mdf['Sale'] > 31) & (mdf['Number'] >3) ]
Name Product Sale Number
3 Sonia Apples 32 4
4 Lucy Mangos 33 5
5 Mike Apples 35 6
link提供的数据:
>>> df[ (df['DepDelay'] !=0 ) & (df['WeatherDelay'] !=0) ].head()
DepDelay Origin Dest WeatherDelay
0 8 IAD TPA
1 19 IAD TPA
2 8 IND BWI
3 -4 IND BWI
5 25 IND JAX
它起作用了,但我得到的结果比我预期的要差得多。这是否意味着我走错了路线?你认为你可以发布你的原始数据吗?如果太大的话,还是一个样本?我不知道你说的“走开”是什么意思。笔记本呢?把你的数据源或样本放在哪里,如果你从本地文件中提取,笔记本本身不会让人们知道它保存了什么数据。数据源==>你能给我们看一下你的数据框架吗。这个问题与机器学习无关-请不要垃圾邮件标签(删除)。我有来源和目的地。我必须形成路线,然后找到延迟的路线数。另外,我还要找出这5条航线因天气原因而延误的航班数量。请再试一次
df[(df['DepDelay']!=0)和(df['WeatherDelay']!=0)]
,这对我来说很有效,它可以从csv文件中复制数据。