我有2个数据框:
restaurant_ids_dataframe
Data columns (total 13 columns):
business_id 4503 non-null values
categories 4503 non-null values
city 4503 non-null values
full_address 4503 non-null values
latitude 4503 non-null values
longitude 4503 non-null values
name 4503 non-null values
neighborhoods 4503 non-null values
open 4503 non-null values
review_count 4503 non-null values
stars 4503 non-null values
state 4503 non-null values
type 4503 non-null values
dtypes: bool(1), float64(3), int64(1), object(8)`
和
restaurant_review_frame
Int64Index: 158430 entries, 0 to 229905
Data columns (total 8 columns):
business_id 158430 non-null values
date 158430 non-null values
review_id 158430 non-null values
stars 158430 non-null values
text 158430 non-null values
type 158430 non-null values
user_id 158430 non-null values
votes 158430 non-null values
dtypes: int64(1), object(7)
我想使用熊猫中的DataFrame.join()命令将这两个DataFrame加入一个单一的数据框中。
我尝试了以下代码行:
#the following line of code creates a left join of restaurant_ids_frame and restaurant_review_frame on the column 'business_id'
restaurant_review_frame.join(other=restaurant_ids_dataframe,on='business_id',how='left')
但是,当我尝试这样做时,出现以下错误:
Exception: columns overlap: Index([business_id, stars, type], dtype=object)
我对熊猫很陌生,不知道就执行join语句而言我在做什么错。
任何帮助将非常感激。
您可以使用 merge 将两个数据帧 合并 为一个:
import pandas as pd
pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer')
其中 on 指定使用两个连接的数据帧中都存在的字段名称,以及 如何
定义其内部/外部/左/右连接,而外部使用“来自两个框架的键的统一(SQL:完全外部连接)”。由于两个数据框中都具有“
star”列,因此默认情况下将在组合数据框中创建两列star_x和star_y。正如@DanAllan在join方法中提到的那样,您可以通过将后缀作为kwarg传递来修改后缀以进行合并。默认值为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'))
在此链接中详细说明了参数。
问题内容: 我肯定在这里错过了一些简单的事情。尝试在熊猫中合并具有相同列名的两个数据框,但右侧的数据框具有一些左侧没有的列,反之亦然。 我试着加入外部联接: 但这产生了: 我还指定了一个要连接的单列(例如on =“ id”),但是它复制了除“ id”以外的所有列,例如attr_1_x,attr_1_y,这并不理想。我也将整个列列表(有很多)传递给了“ on”: 产生: 我想念什么?我想获得一个带有
问题内容: 我正在使用下面的代码合并两个csv(数据帧): 我有以下CSV文件 文件1: 文件2: 合并后 如果您注意到student_id的开头附加了0,应该将其视为文本,但是在合并并使用函数后,它将其转换为数字并删除了前导0。 即使在to_csv之后,如何将列保持为“文本”? 我认为它的to_csv函数可以再次保存为数字添加了dtype = {‘student_id’:str}。 问题答案:
问题内容: 我正在尝试使用两列来连接两个熊猫数据框: 但出现以下错误: 任何想法应该是正确的方法吗?谢谢! 问题答案: 尝试这个 https://pandas.pydata.org/pandas- docs/stable/reference/api/pandas.DataFrame.merge.html left_on:要在左侧DataFrame中加入的标签或列表或类似数组的字段名称。可以是Dat
问题内容: 有很多类似的问题,但没有一个专门针对此问题。 我有一个数据帧列表,我需要使用唯一列将它们合并在一起。字段名称不同,因此concat退出了。 我可以手动使用等将每个df逐一合并,但是问题是列表中数据帧的数量随用户输入而不同。 有什么合并方法可以一次性将所有数据帧合并到一个列表中?还是某些for in loop? 我正在使用Python 2.7。 问题答案: 您可以使用函数where是数据
问题内容: 我在Python中使用熊猫有数据框。其中两列分别命名为和。我想创建一个名为 的变量。 问题答案: 如果两个列都是字符串,则可以直接将它们连接起来: 如果其中一列(或两列)都不是字符串类型,则应首先将其转换为字符串, 这样做时要小心! 如果需要连接多个字符串列,可以使用: 其中是分隔符。
我有两个dataframes(df1和df2,如下所示),它们的列在顺序和计数上都不同。我需要将这两个数据页追加到一个Excel文件中,其中的列顺序必须按照下面中指定的顺序。 df1为: 我正在尝试使用根据Col_list重新排序我的dataframe。对于dataframe中不存在的列值,该值可以是NaN。 这不能正常工作。如何实现此重新排序? 我尝试了以下方法: