阅读多个csv文件时尝试获取列,仅获取前两列

ou6hu8tu  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(185)

我正在读取一个文件夹中的所有csv文件(大约90个文件)。每个文件大约有85列,而我只对其中的2列感兴趣,所以我试图将这些文件复制到我的df中。但是我得到的df只显示了前两列。
csv文件如下所示:csv file
我的代码:

csv_files = glob.glob(os.path.join("C:/User/Documents/Auswertung/2/Vent_2022/*.csv"))
frames = [pd.read_csv(file, sep=';', low_memory=False, usecols = ['LOCALTIME', 'Flow_filter'], names = ['LOCALTIME', 'Flow_filter']) for file in csv_files]
df_vent = pd.concat(frames, ignore_index = True)
df_vent.drop([0,1,2], axis=0, inplace=True)

display(df_vent)

我想得到的是:
| 本地时间|流量_过滤器|
| - ------|- ------|
| 2022年7月1日00:01:00|六十九|
| 二○二二年七月二十四日二十二时四十六分|一百六十七|
| 二○二二年八月九日十五时十四分|三十八|
| 二○二二年九月六日十八时四十五分|五十一|
我得到的是:
| 本地时间|流量_过滤器|
| - ------|- ------|
| 2022年7月1日00:01:00|2022年7月1日00:01:00|
| 二○二二年七月二十四日二十二时四十六分|二○二二年七月二十四日二十二时四十六分|
| 二○二二年八月九日十五时十四分|二○二二年八月九日十五时十四分|
| 二○二二年九月六日十八时四十五分|二○二二年九月六日十八时四十五分|
有没有人知道为什么会发生这种情况,以及我如何才能纠正它?提前感谢:)

    • 编辑**

我听从了一个建议
名称=['本地时间','流量过滤器']
但要知道df的第一列是列1和列3的混合。
| 本地时间|流量_过滤器|
| - ------|- ------|
| 2022年7月1日00:01:00|六十九|
| 二○二二年七月二十四日二十二时四十六分|一百六十七|
| 三个|三十八|
| 三个|五十一|
下面是一张图片:odd df

w9apscun

w9apscun1#

当你把names = ['LOCALTIME', 'Flow_filter']选项传递给pd.read_csv时,你实际上是在覆盖文件中的头行,因此你说这是前两列的名称,然后你说pick这两列,因此是前两列。
因为文件有一个标题行,所以只需删除该选项,pd.read_csv就会为您读取列名,然后usecols = ...就可以正常工作了。

相关问题