我在python中有2个数据帧,其中df1包含一个月内的分钟数据,df2包含分钟数据的加权(两列:'时间'和'权重'仅1天。他们共享时间列,返回dtype “object”看起来像“08:00:00”。这里df1的行数比df2长得多。我尝试使用加入:
pd.merge(df1, df2, on='Time', how='left')
但是数据会为“权重”列返回NaN。知道为什么吗?
编辑:
df1来自sql,df2来自CSV文件:
df1['DateTime'] = pd.to_datetime(df1['timestamp'], format='%Y-%m-%d %H:%M:%S')
df1['Time'] = df1['DateTime'].dt.time
df1['timestamp'] = pd.to_datetime(df1['timestamp'], errors = 'coerce')
df1=df1.set_index('timestamp').between_time('08:00','17:00').reset_index()
col_names = ['Time', 'weight']
df2 = pd.read_csv("C:/Users/abc/weights.csv", names = col_names)
DF1 时间戳datetime64 [ns] DateTime datetime64 [ns] 时间对象 dtype:object
DF2 时间对象 重量浮动64 dtype:object
我做了这个并返回了TypeError:不支持的操作数类型 - :'datetime.time'和'str'。看起来我有两种类型的对象?
print bool(df1.Time[5]- df2.Time[5])