如何使用python

时间:2019-10-10 10:31:47

标签: python pandas

我有三个csv文件,输入日期为一。我只想将这三个csv文件合并为一个具有一个日期列和三个输入数据的csv文件。

date                      X1
2018-06-08 09:30:00 		 450
2018-06-08 10:30:00 		 340.0
2018-06-08 11:30:00 		 200.5
2018-06-08 12:30:00 		 100.75
2018-06-08 13:30:00 		 80.875
2018-06-08 14:30:00 		 50.4375
2018-06-08 15:30:00 		 450.71875
2018-06-08 16:30:00 		 300.859375
2018-06-08 17:30:00 		 150.4296875
2018-06-08 18:30:00 		 40.21484375
2018-06-08 19:30:00 		 47.607421875
2018-06-08 20:30:00 		 23.8037109375


second csv

date                      X2
2018-06-08 09:25:00 		 300
2018-06-08 10:25:00 		 250.0
2018-06-08 11:25:00 		 170.0
2018-06-08 12:25:00 		 80.5
2018-06-08 13:25:00 		 65.25
2018-06-08 14:25:00 		 55.625
2018-06-08 15:25:00 		 40.8125
2018-06-08 16:25:00 		 20.90625
2018-06-08 17:25:00 		 10.953125
2018-06-08 18:25:00 		 8.9765625


third csv

date                     X3
2018-06-08 15:00:00 		 3
2018-06-08 16:00:00 		 2.5.0
2018-06-08 17:00:00 		 0.5
2018-06-08 18:00:00 		 0.35
2018-06-08 19:00:00 		 0.25
2018-06-08 20:00:00 		 0.15
2018-06-08 21:00:00 		 0.03125
2018-06-08 22:00:00 		 0.015625
2018-06-08 23:00:00 		 0.0078125
2018-06-09 00:00:00 		 0.00390625

这是我的三个csv文件:

我期望的是:

date                     X1             X2        X3

2018-06-08 09:25:00      450           NaN        NaN
2018-06-08 09:30:00      NaN	   300        NaN  
2018-06-08 10:25:00      NaN	   250        NaN
2018-06-08 10:30:00      340	   NaN        NaN
2018-06-08 11:25:00      NaN           170	      NaN
2018-06-08 11:30:00      200.5         NaN        NaN		 
2018-06-08 12:25:00      80.5          NaN        NaN		     
2018-06-08 12:30:00      100.75        NaN        NaN 		    
2018-06-08 13:25:00      NaN           65.5       NaN		     
2018-06-08 13:30:00      80.875        NaN        NaN	     
2018-06-08 14:25:00      NaN           55.625     NaN   		 
2018-06-08 14:30:00      50.4375       NaN        NaN		 
2018-06-08 15:00:00      NaN           NaN        3		 
   

在这里我写了一个代码,但是没有给我我期望的输出。 我的代码:

df1= pd.read_csv('X1.csv')
df2=pd.read_csv('X2'.csv')
df3=pd.read_csv('X3'.csv')
df = pd.concat([df1,df2,df3])

有人可以帮我解决这个问题吗?

编写完jerzrael提供的代码后的最终输出

                     Unnamed: 0       X1      Unnamed: 0      X2           Unnamed: 0  \
date                                                                            
2018-06-08 09:25:00         NaN       NaN         0.0  500.000000         NaN   
2018-06-08 10:25:00         NaN       NaN         1.0  350.000000         NaN   
2018-06-08 11:25:00         NaN       NaN         2.0  250.000000         NaN   
2018-06-08 12:25:00         NaN       NaN         3.0  100.500000         NaN   
2018-06-08 13:25:00         NaN       NaN         4.0   50.250000         NaN   
2018-06-08 14:25:00         NaN       NaN         5.0   30.625000         NaN   
2018-06-08 15:00:00         0.0  2.000000         NaN         NaN         0.0   
2018-06-08 15:25:00         NaN       NaN         6.0    7.812500         NaN   
2018-06-08 16:00:00         1.0  1.5000000         NaN         NaN         1.0   
2018-06-08 16:25:00         NaN       NaN         7.0    3.906250         NaN   
2018-06-08 17:00:00         2.0  0.500000         NaN         NaN         2.0   

2 个答案:

答案 0 :(得分:1)

创建yarn global add n n 11.15.0 yarn install # have to install again ,然后将DatetimeIndexconcat一起使用:

axis=1

答案 1 :(得分:0)

尝试一下:

df=df1.merge(df2, how='outer').merge(df3, how='outer')