我是Python的新手,我正在尝试处理一个小项目并且有点困惑。
我有2个csv文件,如下所示:
all_cars:
first_Car,second_car
Mazda, Skoda
Ferrari, Volkswagen
Volkswagen, Toyota
BMW, Ferrari
BMW, Mercedes
super_cars:
super_car_name
Ferrari
BMW
Mercedes
我基本上想要做的只是计算文件1中文件2中的汽车的次数。如果汽车仅代表文件1而不是文件2,我不会想要它。
我根据我的示例文件尝试做的是:
Ferrari : 2
BMY : 2
Mercedes : 1
答案 0 :(得分:2)
我这样做:
hive> select date_format(from_unixtime(epoch_datetime), 'yyyy-MM-dd') as day from table_name limit 20;
-- If required, remove the millis precision for timestamps
hive> select date_format(from_unixtime(cast(epoch_datetime/1000 as bigint)), 'yyyy-MM-dd') as day from table_name limit 20;
其中In [220]: d1.stack().value_counts().to_frame('car').loc[d2.super_car_name]
Out[220]:
car
Ferrari 2
BMW 2
Mercedes 1
和d1
- 您的源DataFrames(可以使用d2
方法从CSV文件轻松解析):
pd.read_csv()
答案 1 :(得分:2)
您可以使用isin
查找匹配项,然后使用stack
和value_counts
将所有内容放入一个表格中:
df1[df1.isin(df2.super_car_name.values)].stack().value_counts()
Ferrari 2
BMW 2
Mercedes 1
dtype: int64