1
我在使用groupby
和aggregation
时遇到问题,因此在使用多个数据帧时工作。我试图从两个不同的数据帧中计算num_maint_over_$90
。pandas groupby从另一个数据帧汇总结果
cars_dict = {"ABC123": ["Ford", "Compact_Car"], "XYZ148": ["Chevy", "Truck"], "ASX133": ["Ford", "Truck"], "ADS111": ["Porsche", "Sports_Car"], "SSC119": ["Toyota", "Compact_Car"]}
cars = pd.DataFrame.from_dict(cars_dict, orient = 'index')
cars.columns = ["Manufacturer", "Type"]
cars.index.rename("License_Plate", inplace = True)
maintenance_dict = {"License_Plate": ["ABC123", "ABC123", "ABC123", "XYZ148", "ASX133", "ASX133", "ADS111", "ADS111", "SSC119"], "Cost": [60, 100, 200, 150, 40, 199, 33, 99, 0]}
maintenance_records = pd.DataFrame.from_dict(maintenance_dict)
maintenance_records.index.rename("order_num", inplace = True)
*汽车:*
Manufacturer Type
License_Plate
XYZ148 Chevy Truck
SSC119 Toyota Compact_Car
ASX133 Ford Truck
ABC123 Ford Compact_Car
ADS111 Porsche Sports_Car
* maintenance_records:*
Cost License_Plate
order_num
0 60 ABC123
1 100 ABC123
2 200 ABC123
3 150 XYZ148
4 40 ASX133
5 199 ASX133
6 33 ADS111
7 99 ADS111
8 0 SSC119
*所需DF:*
Type num_maint_over_$90
Compact_Car 2
Sports_Car 1
Truck 2
我试过使用groupby
,apply()
和for loop
。
的'maintenance_dict'在你的问题是缺少'Cost'列,顺便一提。 –
我希望除了合并表格之外还有一种方法。这工作,谢谢。 –
@JBr如果此答案已解决您的问题,请点击复选标记考虑[接受它](http://meta.stackexchange.com/q/5234/179419)。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做。 –