我有一个包含trip_id,service_id等列的DataFrame,比如
trip_id service_id
1 weekday
2 weekday
3 weekday
4 saturday
5 saturday
6 holiday
7 sunday
我想分别为所有星期六和假日打印所有“工作日”的trip_id。我尝试了
join_df.query(join_df['service_id'] == 'weekday')
方式,但它似乎并不合适。我也试过
print join_df[join_df.service_id =='weekdays']
没有用。输出空数据帧。
请有人帮我这个。 谢谢
答案 0 :(得分:0)
这看起来像一个拼写错误(工作日不是工作日),无论是后者还是使用loc都应该有效:
In [11]: df[df.service_id == 'weekday']
Out[11]:
trip_id service_id
0 1 weekday
1 2 weekday
2 3 weekday
In [12]: df.loc[df.service_id == 'weekday']
Out[12]:
trip_id service_id
0 1 weekday
1 2 weekday
2 3 weekday
您也可以使用查询,但语法不正确:
In [13]: df.query("service_id == 'weekday'")
Out[13]:
trip_id service_id
0 1 weekday
1 2 weekday
2 3 weekday
答案 1 :(得分:0)
如果您有以下DataFrame:
service_id
trip_id
1 weekday
2 weekday
3 weekday
4 saturday
5 saturday
6 holiday
7 sunday
然后,您可以遍历service_id
列中的所有唯一值,并使用boolean indexing打印出原始DataFrame的子集。例如:
for grp in df['service_id'].unique():
print df[df['service_id'] == grp]
输出:
service_id
trip_id
1 weekday
2 weekday
3 weekday
service_id
trip_id
4 saturday
5 saturday
service_id
trip_id
6 holiday
service_id
trip_id
7 sunday