Python 熊猫的左内连接
我正在学习Python(2.7)并尝试左键连接两个数据帧。 一个数据框具有产品的日期和相应的销售,而另一个数据框具有日期和一周中的相应日期Python 熊猫的左内连接,python,pandas,merge,Python,Pandas,Merge,我正在学习Python(2.7)并尝试左键连接两个数据帧。 一个数据框具有产品的日期和相应的销售,而另一个数据框具有日期和一周中的相应日期 print type(weekdaytrain) print weekdaytrainhead(5) <class 'pandas.core.frame.DataFrame'> data giorno_settimana 0 2014-09-01 0 1 2014-09-02
print type(weekdaytrain)
print weekdaytrainhead(5)
<class 'pandas.core.frame.DataFrame'>
data giorno_settimana
0 2014-09-01 0
1 2014-09-02 1
2 2014-09-03 2
3 2014-09-04 3
4 2014-09-05 4
print type(train)
print train.head(5)
<class 'pandas.core.frame.DataFrame'>
data pezzi
1078 2014-09-01 1743
1086 2014-09-02 1483
1094 2014-09-03 1510
1102 2014-09-04 1276
1110 2014-09-05 1741
或
我得到:
data pezzi giorno_settimana
0 2014-09-01 1743 NaN
1 2014-09-02 1483 NaN
2 2014-09-03 1510 NaN
3 2014-09-04 1276 NaN
4 2014-09-05 1741 NaN
即使日期确实相符。
我在寻找答案,但没有一个适合我的问题,你能帮我吗
谢谢 我认为您需要将两个
数据帧中的列转换为日期时间
,因为似乎有不同的数据类型
——一个是日期时间
,另一个是对象
(显然字符串
):
new_train = pd.merge(train,weekdaytrain, left_on='data',right_on='data',how='left')
data pezzi giorno_settimana
0 2014-09-01 1743 NaN
1 2014-09-02 1483 NaN
2 2014-09-03 1510 NaN
3 2014-09-04 1276 NaN
4 2014-09-05 1741 NaN
weekdaytrain.data = pd.to_datetime(weekdaytrain.data)
train.data = pd.to_datetime(train.data)
print (weekdaytrain.dtypes)
data datetime64[ns]
giorno_settimana int64
dtype: object
print (train.dtypes)
data object
pezzi int64
dtype: object
new_train = pd.merge(train,weekdaytrain, on='data',how='left')
print (new_train)
data pezzi giorno_settimana
0 2014-09-01 1743 NaN
1 2014-09-02 1483 NaN
2 2014-09-03 1510 NaN
3 2014-09-04 1276 NaN
4 2014-09-05 1741 NaN
#column in train is not datetime, so need converting
train.data = pd.to_datetime(train.data)
new_train = pd.merge(train,weekdaytrain, on='data',how='left')
print (new_train)
data pezzi giorno_settimana
0 2014-09-01 1743 0
1 2014-09-02 1483 1
2 2014-09-03 1510 2
3 2014-09-04 1276 3
4 2014-09-05 1741 4