Pandas的奇怪行为

2024-04-20 12:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是好奇这里发生了什么。我有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个数据帧是通过列表理解产生的,我得到了一个非常奇怪的结果。就好像我在pd.concat()函数中设置了axis=1。如果我试图引用一列,就说val

df['val']

熊猫返回的东西是这样的:

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

它是每列的第一个索引。我不确定为什么pandas的行为是这样的,因为我可以想象它只是将具有相似标题名的列连接在一起,但显然不是这样。你知道吗

如果有时间能解释这一点那就太好了。你知道吗


Tags: 数据namedftime地方公司valpd
1条回答
网友
1楼 · 发布于 2024-04-20 12:20:39

我相信你的问题是,你不是重置索引后串联,但在选择数据之前。你知道吗

尝试:

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]

相关问题 更多 >