簡體   English   中英

Reading.csv 文件,其中 Python 和 DictReader 缺少列

[英]Reading .csv file with Python and DictReader missing columns

我有以下.csv文件,我正在嘗試整體閱讀:

---------------------------------------------------------------
#INFO            |           |        |       |        |      |
---------------------------------------------------------------
#Study name      | g1        |        |       |        |      |
---------------------------------------------------------------
#Respondent Name | name      |        |       |        |      |
---------------------------------------------------------------
#Respondent Age  | 20        |        |       |        |      |
---------------------------------------------------------------
#DATA            |           |        |       |        |      |
---------------------------------------------------------------
Row              | Timestamp | Source | Event | Sample | Anger|
---------------------------------------------------------------
1                | 133       | Face   | 1     | 3      | 0.44 |
---------------------------------------------------------------
2                | 240       | Face   | 1     | 4      | 0.20 |
---------------------------------------------------------------
3                | 12        | Face   | 1     | 5      | 0.13 |
---------------------------------------------------------------
4                | 133       | Face   | 1     | 6      | 0.75 |
---------------------------------------------------------------
5                | 87        | Face   | 1     | 7      | 0.25 |
---------------------------------------------------------------

文件的圖像

這是我用來打開、讀取文件並打印到終端的代碼:

import csv

def read_csv():
    with open("in/2.csv", encoding="utf-8-sig") as f:
        reader = csv.DictReader(f)
        print(list(reader))
read_csv()

我得到的 output 僅包含.csv的前兩列:

[{'#INFO': '#Study name', '': ''}, {'#INFO': '#Respondent Name', '': ''}, {'#INFO': '#Respondent Age', '': ''}, {'#INFO': '#DATA', '': ''}, {'#INFO': 'Row', '': 'Anger'}, {'#INFO': '1', '': '4.40E-01'}, {'#INFO': '2', '': '2.00E-01'}, {'#INFO': '3', '': '1.30E-01'}, {'#INFO': '4', '': '7.50E-01'}, {'#INFO': '5', '': '2.50E-01'}]

為什么我的 output 中缺少其他列? 我希望也包括從Row開始的其他列。 任何方向將不勝感激。 謝謝!

嘗試:

for _ in zip(f, range(5)): 
    pass

在初始化DictReader之前。 這應該跳過前 5 行。

import csv

def read_csv():
    with open("in/2.csv", encoding="utf-8-sig") as f:
        for _ in zip(f, range(5)): 
            pass
        reader = csv.DictReader(f)
        print(list(reader))
read_csv()

DictReader需要一個文件,其中第一行包含列名(每個名稱彼此不同),隨后的行包含數據條目。 如果多個列名只是空字符串,最后一列中的值將分配給返回字典中的鍵''

要跳過前五行,您可以這樣寫:

import csv

def read_csv():
    with open("in/2.csv", encoding="utf-8-sig") as f:
        for _ in range(5):
            next(f)

        reader = csv.DictReader(f)
        print(list(reader))
read_csv()
import csv

def read_csv():
    with open("in/2.csv", encoding="utf-8-sig") as f:
        for _ in range(5):
            next(f)

        reader = csv.DictReader(f)
        print(list(reader))
read_csv()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM