我正在读取一个文件夹中的所有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
1条答案
按热度按时间w9apscun1#
当你把
names = ['LOCALTIME', 'Flow_filter']
选项传递给pd.read_csv
时,你实际上是在覆盖文件中的头行,因此你说这是前两列的名称,然后你说pick这两列,因此是前两列。因为文件有一个标题行,所以只需删除该选项,
pd.read_csv
就会为您读取列名,然后usecols = ...
就可以正常工作了。