将多个CSV文件导入panda,并根据列值合并这些文件



我有4个数据帧:

import pandas as pd
df_inventory_parts = pd.read_csv('inventory_parts.csv')
df_colors = pd.read_csv('colors.csv')
df_part_categories = pd.read_csv('part_categories.csv')
df_parts = pd.read_csv('parts.csv')

现在我已经将它们合并为一个新的数据帧,如:

merged = pd.merge(
left=df_inventory_parts, 
right=df_colors, 
how='left', 
left_on='color_id', 
right_on='id')
merged = pd.merge(
left=merged, 
right=df_parts, 
how='left', 
left_on='part_num', 
right_on='part_num')
merged = pd.merge(
left=merged, 
right=df_part_categories, 
how='left', 
left_on='part_cat_id', 
right_on='id')
merged.head(20)

这提供了我正在寻找的正确数据集。然而,我想知道是否有一种更短/更快的方式来写这篇文章。使用pd.merge三次似乎有点过分。

您有一段非常清晰的代码,可以完全执行您想要的操作。您想要进行三次合并,所以使用merge((三次是足够的,而不是过度的。

您可以使用DataFrames有一个合并函数的事实来缩短代码,这样您就不需要左参数了。您也可以将它们链接起来,但我要指出的是,我的示例看起来不如较长的表单代码整洁易读。

merged = df_inventory_parts.merge(
right=df_colors, 
how='left', 
left_on='color_id', 
right_on='id').merge(
right=df_parts, 
how='left', 
left_on='part_num', 
right_on='part_num').merge(
right=df_part_categories, 
how='left', 
left_on='part_cat_id', 
right_on='id')

相关内容

  • 没有找到相关文章

最新更新