回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有两个pandas数据帧,其中一个日期时间戳作为索引名为“datetime”,另一些浮动作为列名为“metric1”或“metric2”。当我尝试连接它们时,出现以下错误:</p>
<pre><code>ValueError: cannot reindex from a duplicate axis
</code></pre>
<p>读了几个小时后,我找不到解决问题的方法(例如<a href="https://stackoverflow.com/questions/27236275/what-does-valueerror-cannot-reindex-from-a-duplicate-axis-mean">What does `ValueError: cannot reindex from a duplicate axis` mean?</a><a href="https://stackoverflow.com/questions/27711623/valueerror-cannot-reindex-from-a-duplicate-axis">"ValueError: cannot reindex from a duplicate axis"</a>)。你知道吗</p>
<p>然后我花了很长时间试图重现这个问题,但没有我的具体数据,但我的数据是两大张贴在这里。你知道吗</p>
<p>最后看起来数据帧的某些部分不兼容,但其他部分没有问题。在比较了许多不同的索引片段之后,我终于找到了不兼容的集合。有人能帮我理解为什么我不能连接这些。你知道吗</p>
<p>基本上我想它,使所有可能的时间戳都在索引中,并有一列为“metric1”和“metric2”。如果在给定的时间戳中没有列的数据,那么我们只有NaN或其他什么。这在<code>pd.concat</code>中正常工作,但在这种情况下不起作用。要重新创建,请使用:</p>
<h2>CSV文件:</h2>
<h3>test1.csv</h3>
<pre><code>timestamp,metric1
2018-03-21 15:46:36,3.5555559999999997
2018-03-21 15:47:36,5.345001
2018-03-21 15:48:36,5.719998
</code></pre>
<h3>test2.csv</h3>
<pre><code>timestamp,metric2
2018-03-28 05:49:59,3.28
2018-03-28 05:50:59,3.45
2018-03-28 05:51:59,3.258332
2018-03-28 05:52:59,3.068333
2018-03-28 05:53:59,2.9733330000000002
2018-03-28 05:54:59,3.0650009999999996
2018-03-28 05:55:59,3.109999
2018-03-28 05:56:59,3.3683330000000002
2018-03-28 05:57:59,3.1516669999999998
2018-03-28 05:58:59,3.051666
2018-03-28 05:59:59,3.3083339999999994
2018-03-28 06:01:01,3.328333
2018-03-28 06:01:01,3.1
2018-03-28 06:02:00,3.305
2018-03-28 06:03:00,3.29
2018-03-28 06:04:00,3.2183330000000003
2018-03-28 06:05:00,3.176666
2018-03-28 06:06:00,3.353333
2018-03-28 06:07:00,3.3233330000000003
2018-03-28 06:08:00,3.393332
2018-03-28 06:09:00,3.053334
2018-03-28 06:10:00,3.268333
2018-03-28 06:11:00,3.239999
2018-03-28 06:12:00,3.223332
2018-03-28 06:13:00,3.119999
</code></pre>
<h3>test4.csv</h3>
<pre><code>timestamp,metric2
2018-03-21 00:00:00,10.665
2018-03-21 00:01:00,10.285
2018-03-21 00:02:00,10.12834
</code></pre>
<h3>注:test2.csv和test4.csv来自完全相同的数据集。</h3>
<p>现在让我们加载CSV文件:</p>
<pre><code>tt1 = pd.read_csv('test1.csv', index_col=0)
tt1.index = pd.to_datetime(tt1.index)
tt2 = pd.read_csv('test2.csv', index_col=0)
tt2.index = pd.to_datetime(tt2.index)
tt4 = pd.read_csv('test4.csv', index_col=0)
tt4.index = pd.to_datetime(tt4.index)
</code></pre>
<p>现在让我们测试连接它们:</p>
<h2>测试无误</h2>
<pre><code>tt3 = pd.concat([tt1, tt4], axis = 1)
</code></pre>
<h2>错误测试</h2>
<pre><code>tt3 = pd.concat([tt1, tt2], axis = 1)
ValueError: cannot reindex from a duplicate axis
</code></pre>