从聚合函数制作数据框时无法指定列名
Trouble specifying column names when making dataframe from aggregate function
当我制作数据框时:
freq = pd.DataFrame(combined.groupby(['Latitude', 'Longitude','from_station_name']).agg('count')['trip_id'])
它工作得很好,但是当我尝试时:
freq = pd.DataFrame(combined.groupby(['Latitude', 'Longitude','from_station_name']).agg('count')['trip_id'], columns = ['lat','long','station','trips'])
我在查看数据框时只看到 headers。我可以制作数据框然后使用:
freq.columns = ['lat','long','station','trips']
但想知道如何一步完成。我试过为聚合函数指定 "data =" 。尝试将列名的括号括起来,删除列名的括号。任何建议表示赞赏。
您不需要将 groupby
对象传递给新的数据框构造函数(就像已经提到的@Vaishali)
如果你想在 groupby 之后重命名你的列,你可以简单地做这样的事情:
combined.groupby(['Latitude', 'Longitude','from_station_name']).trip_id.agg('count').rename(columns={'Latitude': 'lat', 'Longitude': 'long', 'from_station_name':'station', 'count': 'trips})
当我制作数据框时:
freq = pd.DataFrame(combined.groupby(['Latitude', 'Longitude','from_station_name']).agg('count')['trip_id'])
它工作得很好,但是当我尝试时:
freq = pd.DataFrame(combined.groupby(['Latitude', 'Longitude','from_station_name']).agg('count')['trip_id'], columns = ['lat','long','station','trips'])
我在查看数据框时只看到 headers。我可以制作数据框然后使用:
freq.columns = ['lat','long','station','trips']
但想知道如何一步完成。我试过为聚合函数指定 "data =" 。尝试将列名的括号括起来,删除列名的括号。任何建议表示赞赏。
您不需要将 groupby
对象传递给新的数据框构造函数(就像已经提到的@Vaishali)
如果你想在 groupby 之后重命名你的列,你可以简单地做这样的事情:
combined.groupby(['Latitude', 'Longitude','from_station_name']).trip_id.agg('count').rename(columns={'Latitude': 'lat', 'Longitude': 'long', 'from_station_name':'station', 'count': 'trips})