我只是对这里发生的事情感到好奇。我有13个看起来像这样的数据框:
df1:
time val
00:00 1
00:01 2
00:02 5
00:03 8
df2:
time val
00:04 5
00:05 12
00:06 4
df3:
time val
00:07 8
00:08 24
00:09 3
,依此类推。如您所见,每个数据帧都在另一个数据帧停下来的时间继续进行,这意味着为了简化起见,理想情况下,我希望在一个数据帧中使用它们。 请注意,我使用的示例比实际示例小得多。但是,使用以下命令后:
df = pd.concat([pd.read_csv(i, usecols=[0,1,2]) for i in sample_files])
在通过列表理解生成这13个数据帧的地方,我得到了一个非常奇怪的结果。就像我在axis=1
函数中设置了pd.concat()
一样。如果我尝试引用列,请说val
df['val']
Pandas返回的内容如下:
0 1
1 2
...
2 5
3 8
Name: val, Length: 4, dtype: float64
在此输出中,未指定其他11 val
列发生了什么。如果再引用索引,则如下:
df['val'][0]
它返回:
0 1
0 5
0 8
Name: val, dtype: float64
是每列的第一个索引。我不确定熊猫为什么会这样,就像我想象的那样,它只是将具有相似标题名称的列连接在一起,但是显然并非如此。
如果有时间可以解释这一点,那就太好了。
答案 0 :(得分:0)
我相信您的问题是,您不是在串联之后而是在选择数据之前重置索引。
尝试:
df = pd.concat([pd.read_csv(i, usecols=[0,1,2]) for i in sample_files])
df = df.reset_index(Drop=True)
df['val'][0]