python在Time上连接数据帧

时间:2017-02-14 18:29:33

标签: python pandas join dataframe merge

我在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文件:

https://ufile.io/e7fc5

https://ufile.io/0d37c

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])

0 个答案:

没有答案