Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何合并具有相同列名的数据帧?_Python_Pandas - Fatal编程技术网

Python 如何合并具有相同列名的数据帧?

Python 如何合并具有相同列名的数据帧?,python,pandas,Python,Pandas,索引是一个时间戳和列名,还可以将NaN替换为值。它似乎不起作用 样本: import pandas as pd times = pd.to_datetime(pd.Series(['2014-07-4', '2014-07-15','2014-08-24','2014-08-25','2014-09-10','2014-09-17'])) valuea = [0.01, 0.02, -0.03, 0.4 ,0.5,np.NaN] times2 = pd.to_datetime(pd.Seri

索引是一个时间戳和列名,还可以将NaN替换为值。它似乎不起作用

样本:

import pandas as pd

times = pd.to_datetime(pd.Series(['2014-07-4',
'2014-07-15','2014-08-24','2014-08-25','2014-09-10','2014-09-17']))
valuea = [0.01, 0.02, -0.03, 0.4 ,0.5,np.NaN]

times2 = pd.to_datetime(pd.Series(['2014-07-6',
'2014-07-16','2014-08-27','2014-09-5','2014-09-11','2014-09-17']))
valuea2 = [1, 2, 3, 4,5,-6]


df1 = pd.DataFrame({'value A': valuea}, index=times)
df2 = pd.DataFrame({'value A': valuea2}, index=times2)

df3=pd.merge(df1,df2, left_index=True, right_index=True)
df3.head()

假设你需要外部连接

pd.concat([df1,df2],axis=1)
Out[321]: 
            value A  value A
2014-07-04     0.01      NaN
2014-07-06      NaN      1.0
2014-07-15     0.02      NaN
2014-07-16      NaN      2.0
2014-08-24    -0.03      NaN
2014-08-25     0.40      NaN
2014-08-27      NaN      3.0
2014-09-05      NaN      4.0
2014-09-10     0.50      NaN
2014-09-11      NaN      5.0
2014-09-17      NaN     -6.0
更新

df1.combine_first(df2)
Out[324]: 
            value A
2014-07-04     0.01
2014-07-06     1.00
2014-07-15     0.02
2014-07-16     2.00
2014-08-24    -0.03
2014-08-25     0.40
2014-08-27     3.00
2014-09-05     4.00
2014-09-10     0.50
2014-09-11     5.00
2014-09-17    -6.00

您是否有任何错误?请尝试将
np.Nan
替换为
np.Nan
对不起,键入错误…可能您需要
pd.concat([df1,df2])
pd.concat([df1,df2])
就可以了。@ramich这是联合的_first@Wen,我不确定我是否完全理解OP的问题,但是的,你是对的
pd.concat([df1,df2]).dropna()
的等价项将是
df1。首先合并(df2)
。毕竟OP确实提到了
NaN
值。不清楚OP是要删除它还是保留它,然后使用
.fillna()