<p>这个问题与索引有关。
如果运行以下代码:</p>
<pre><code>newDF = pd.DataFrame()
newDF['date_y'] = dfY['date']
print(newDF)
</code></pre>
<p>您将得到以下输出:</p>
<pre><code> date_y
0 2014-05-23 04:00:00
1 2015-12-21 04:00:00
2 2016-05-03 04:00:00
3 2017-12-20 04:00:00
4 2018-06-14 04:00:00
5 2019-06-25 04:00:00
</code></pre>
<p>索引从0开始</p>
<p>运行以下命令:</p>
<pre><code>newDF = pd.DataFrame()
newDF['date_m'] = dfM['date'][len(dfM) - len(dfY):len(dfM)]
print(newDF)
</code></pre>
<p>您将得到以下输出:</p>
<pre><code> date_m
10 2019-01-31 04:00:00
11 2019-02-05 04:00:00
12 2019-03-29 04:00:00
13 2019-04-30 04:00:00
14 2019-05-03 04:00:00
15 2019-06-03 04:00:00
</code></pre>
<p>这里,索引从10开始</p>
<p>因此,您需要重置dfM dataframe的'date'和'Y\u N'列的索引,如下所示:</p>
<pre><code>def readDataFile():
fileName = "year.csv"
dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
dfY = pd.read_csv(fileName, parse_dates=['date'], date_parser=dateparse)
fileName = "month.csv"
dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
dfM = pd.read_csv(fileName, parse_dates=['date'], date_parser=dateparse)
newDF = pd.DataFrame()
newDF['date_y'] = dfY['date']
newDF['year_y_n'] = dfY['Y_N']
# Changes made on this line.
newDF['date_m'] = dfM['date'][len(dfM) - len(dfY):len(dfM)].reset_index(drop=True)
newDF['month_y_n'] = dfM['Y_N'][len(dfM) - len(dfY):len(dfM)].reset_index(drop=True)
print(newDF)
readDataFile()
</code></pre>
<p>输出:</p>
<pre><code>date_y year_y_n date_m month_y_n
0 2014-05-23 04:00:00 Y 2019-01-31 04:00:00 N
1 2015-12-21 04:00:00 N 2019-02-05 04:00:00 Y
2 2016-05-03 04:00:00 Y 2019-03-29 04:00:00 N
3 2017-12-20 04:00:00 N 2019-04-30 04:00:00 Y
4 2018-06-14 04:00:00 N 2019-05-03 04:00:00 N
5 2019-06-25 04:00:00 N 2019-06-03 04:00:00 Y
</code></pre>