3 回答

TA贡献1793条经验 获得超6个赞
您可以使用merge将两个数据帧合并为一个:
import pandas as pd pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer')
where on指定存在于要连接的两个数据帧中的字段名称,以及如何 定义其内部/外部/左/右连接,外部使用“来自两个帧的键的并集(SQL:完全外部连接)”。由于两个数据框中都有“星形”列,因此默认情况下会在合并的数据框中创建两列star_x和star_y。正如@DanAllan为join方法所提到的,您可以通过将其作为kwarg传递来修改merge的后缀。默认是suffixes=('_x', '_y')
。如果你想这样做star_restaurant_id
和star_restaurant_review
,你可以这样做:
pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer', suffixes=('_restaurant_id', '_restaurant_review'))
这个参数在这个链接中有详细解释。

TA贡献1786条经验 获得超13个赞
如果DataFrame具有一些共同的列名,则加入失败。最简单的方法是包含一个lsuffix
或rsuffix
类似的关键字:
restaurant_review_frame.join(restaurant_ids_dataframe, on='business_id', how='left', lsuffix="_review")
这样,列具有不同的名称。该文档解决了这个问题。
或者,您可以通过在加入之前删除违规列来解决这个问题。例如,如果星星中的星星restaurant_ids_dataframe
多余restaurant_review_frame
,那么你可以del restaurant_ids_dataframe['stars']
。

TA贡献1772条经验 获得超6个赞
如果有人需要尝试在索引(而不是另一列)上合并两个数据帧,这也有效!
T1和T2是具有相同索引的数据帧
import pandas as pd T1 = pd.merge(T1, T2, on=T1.index, how='outer')
PS我必须使用merge,因为append会不必要地填充NaN。
添加回答
举报