csv 我的DataFrame合并出现了什么问题?

cotxawn7  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(104)

尝试合并这两个没有任何公共列的 Dataframe :

但是,当我输入此代码时:

combined = cleaned.merge(weather, how='cross')
combined

我得到一个包含90行的合并数据集。

我知道一个数据集比另一个数据集少一行。但是我怎样才能在不重复90次的情况下合并它们呢?我只想简单地将这两个数据集混合在一起,并删除第9行。
尝试了how=None的变体

lb3vh1jj

lb3vh1jj1#

要合并两个 Dataframe ,必须找到一个公共键。您可以从第二个 Dataframe 的Date列中提取年份。现在,您有一个用于处理内部连接的公共键:

# If needed, convert date_time as datetime64
weather['date_time'] = pd.to_datetime(weather['date_time'])

# If needed, convert Date as int
cleaned['Date'] = cleaned['Date'].astype(int)

out = cleaned.merge(weather.assign(Date=df2['datetime'].dt.year), on='Date')
qmelpv7a

qmelpv7a2#

您需要从'date_time'创建一个新列,其中只包含year,然后对'Year'列应用合并。在那之后,如果你不想在你的数据框中保留日期时间列。

weather['date_time'] = pd.to_datetime(df['date_time'])
weather['Date'] = weather['date_time'].dt.year

combined = cleaned.merge(weather, on = 'Date')

# after that drop the 'date_time' column

combined.drop(['date_time'], axis = 1, inplace = True)

相关问题