Gui*_*oni 3 python csv dataframe pandas
我有一个庞大的数据集,我想逐行阅读它。现在,我正在使用pandas读取数据集:
df = pd.read_csv("mydata.csv", sep =',', nrows = 1)
Run Code Online (Sandbox Code Playgroud)
此功能允许我只读了第一线,但我怎么能读取第二,第三个等等?(我想用熊猫。)
编辑:为了更清楚,我需要一次读取一行,因为数据集为20 GB,我无法将所有内容保留在内存中。
小智 10
一种方法是逐部分读取文件并存储每个部分,例如:
df1 = pd.read_csv("mydata.csv", nrows=10000)
Run Code Online (Sandbox Code Playgroud)
在这里,您将跳过已读取并存储在 df1 中的前 10000 行,并将接下来的 10000 行存储在 df2 中。
df2 = pd.read_csv("mydata.csv", skiprows=10000 nrows=10000)
dfn = pd.read_csv("mydata.csv", skiprows=(n-1)*10000, nrows=10000)
Run Code Online (Sandbox Code Playgroud)
也许有一种方法可以将这个想法引入 for 或 while 循环。
在熊猫文档中,有一个read_csv函数的参数:
skiprows
Run Code Online (Sandbox Code Playgroud)
如果将列表分配给此参数,它将跳过该列表索引的行:
skiprows = [0,1]
Run Code Online (Sandbox Code Playgroud)
这将跳过第一行和第二行。由此的组合nrow和skiprows允许分别读取数据集中的每一行。