[英]Skip rows during csv import pandas
我正在嘗試使用pandas.read_csv()
導入 a.csv 文件,但是,我不想導入數據文件的第二行(索引 = 1 的行用於 0 索引)。
我看不出如何不導入它,因為與命令一起使用的 arguments 似乎模棱兩可:
從 pandas 網站:
skiprows
: 類似列表或 integer在文件開頭要跳過的行號(0 索引)或要跳過的行數(int)。”
如果我在 arguments 中放入skiprows=1
,它如何知道是跳過第一行還是跳過索引為 1 的行?
你可以自己試試:
>>> import pandas as pd
>>> from StringIO import StringIO
>>> s = """1, 2
... 3, 4
... 5, 6"""
>>> pd.read_csv(StringIO(s), skiprows=[1], header=None)
0 1
0 1 2
1 5 6
>>> pd.read_csv(StringIO(s), skiprows=1, header=None)
0 1
0 3 4
1 5 6
我在讀取 csv 文件時運行 skiprows 時遇到了同樣的問題。 我正在做 skip_rows=1 這行不通
簡單示例給出了如何在讀取 csv 文件時使用跳過行的想法。
import pandas as pd
#skiprows=1 will skip first line and try to read from second line
df = pd.read_csv('my_csv_file.csv', skiprows=1) ## pandas as pd
#print the data frame
df
所有這些答案都忽略了一個重要的點——第 n 行是文件中的第 n 行,而不是數據集中的第 n 行。 我有一種情況,我從 USGS 下載了一些過時的流量測量儀數據。 數據集的頭部用“#”注釋,之后的第一行是標簽,接下來是描述日期類型的行,最后是數據本身。 我永遠不知道有多少注釋行,但我知道前幾行是什么。 例子:
- - - - - - - - - - - - - - - 警告 - - - - - - - - - - --------------
您從這個美國地質調查局數據庫中獲得的一些數據
可能沒有得到董事的批准。 ... Agency_cd site_no datetime tz_cd 139719_00065 139719_00065_cd
5s 15s 20d 6s 14n 10s USGS 08041780 2018-05-06 00:00 CDT 1.98 A
如果有一種方法可以自動跳過第 n 行和第 n 行,那就太好了。
作為說明,我能夠通過以下方式解決我的問題:
import pandas as pd
ds = pd.read_csv(fname, comment='#', sep='\t', header=0, parse_dates=True)
ds.drop(0, inplace=True)
您有以下選項可以跳過 Pandas 中的行:
from io import StringIO
csv = \
"""col1,col2
1,a
2,b
3,c
4,d
"""
pd.read_csv(StringIO(csv))
# Output:
col1 col2 # index 0
0 1 a # index 1
1 2 b # index 2
2 3 c # index 3
3 4 d # index 4
在文件開頭跳過兩行(索引 0 和 1)。 列名也被跳過(索引 0),頂行用於列名。 要添加列名稱,請使用names = ['col1', 'col2']
參數:
pd.read_csv(StringIO(csv), skiprows=2)
# Output:
2 b
0 3 c
1 4 d
跳過第二行和第四行(索引 1 和 3):
pd.read_csv(StringIO(csv), skiprows=[1, 3])
# Output:
col1 col2
0 2 b
1 4 d
跳過最后兩行:
pd.read_csv(StringIO(csv), engine='python', skipfooter=2)
# Output:
col1 col2
0 1 a
1 2 b
使用 lambda 函數跳過每一行(索引 1 和 3):
pd.read_csv(StringIO(csv), skiprows=lambda x: (x % 2) != 0)
# Output:
col1 col2
0 2 b
1 4 d
skip[1]
將跳過第二行,而不是第一行。
還要確保您的文件實際上是一個 CSV 文件。 例如,如果您有一個 .xls 文件,並且只是將文件擴展名更改為 .csv,則該文件不會導入並會出現上述錯誤。 要檢查這是否是您的問題,請在 excel 中打開文件,它可能會說:
“'Filename.csv' 的文件格式和擴展名不匹配。該文件可能已損壞或不安全。除非您信任其來源,否則請勿打開它。您還是要打開它嗎?”
修復文件:在 Excel 中打開文件,單擊“另存為”,選擇要另存為的文件格式(使用 .cvs),然后替換現有文件。
這是我的問題,並為我修復了錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.