本文主要是介绍ValueError: You are trying to merge on datetime64[ns] and object columns. If you wish to proceed you,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题
python读取的csv文件的某一列是时间,把datetime列转换为datetime类型。
问题示例
—情景:按时间索引ts,用merge横向合并两个dataframe,报错:
ValueError: You are trying to merge on datetime64[ns] and object columns. If you wish to proceed you should use pd.concat
object
results = pd.DataFrame(results)
results.to_csv('capm.csv')
results = pd.read_csv('capm.csv')merged_df = pd.merge(df, results, on=['ts', 'symbol'], how='inner')
1.解决:把Series转换为datetime类型
通过报错发现我们的时间数据读进来之后就变成了object类型,而不是datetime类型
代码如下(示例):
import pandas as pd #导入模块
results = results .assign( ts=pd.to_datetime(results ['ts'] )) #把results的'ts'列转化为datetime类型,把转换后的ts列覆盖原来的ts列
a=results['ts'].dtypes #查看列名为"ts"那列的数据类型
print(a) #发现类型已经变为datetime64[ns],成功!
这篇关于ValueError: You are trying to merge on datetime64[ns] and object columns. If you wish to proceed you的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!