CSV文件或逗号分隔值文件是使用最广泛的平面文件之一,用于跨平台存储和存储数据。列之间用逗号分隔,并且还有可选的标题行,该行将指示每列的名称。Python可以使用许多模块读取CSV文件。在本文中,我们将了解如何使用python中的CSV库读取和写入CSV文件。我们还可以看到pandas库只能读取CSV文件。
我们可以从(https://www.guru99.com/python-csv.html)获取CSV文件
import csv with open('C:\\iris.csv','rt')as file: csv_rows = csv.reader(file) for row in csv_rows: print(row)
输出结果
运行上面的代码给我们以下结果-
['sepal.length', 'sepal.width', 'petal.length', 'petal.width', 'variety'] ['5.1', '3.5', '1.4', '.2', 'Setosa'] ['4.9', '3', '1.4', '.2', 'Setosa'] ['4.7', '3.2', '1.3', '.2', 'Setosa'] ['4.6', '3.1', '1.5', '.2', 'Setosa'] ['5', '3.6', '1.4', '.2', 'Setosa'] ['5.4', '3.9', '1.7', '.4', 'Setosa'] ['4.6', '3.4', '1.4', '.3', 'Setosa'] ……………… ……………
熊猫库也可以用来读取csv文件。它具有读取csv的方法,可以绕过路径和文件名直接应用csv。读取文件后,它将成为数据集,然后我们可以根据需要打印数据集的不同部分。
import pandas as pd datainput = pd.read_csv('C:\\iris.csv') print("Given dataset values : \n", datainput) #size of the dataset print("\nThe size of the dataset is :\n",datainput.shape) #printing few rows from the dataset print("\n printing few rows from the dataset :\n",datainput[0:6])
输出结果
运行上面的代码为我们提供以下结果-
Given dataset values : sepal.length sepal.width petal.length petal.width variety 0 5.1 3.5 1.4 0.2 Setosa 1 4.9 3.0 1.4 0.2 Setosa 2 4.7 3.2 1.3 0.2 Setosa 3 4.6 3.1 1.5 0.2 Setosa 4 5.0 3.6 1.4 0.2 Setosa .. ... ... ... ... ... 145 6.7 3.0 5.2 2.3 Virginica 146 6.3 2.5 5.0 1.9 Virginica 147 6.5 3.0 5.2 2.0 Virginica 148 6.2 3.4 5.4 2.3 Virginica 149 5.9 3.0 5.1 1.8 Virginica [150 rows x 5 columns] The size of the dataset is : (150, 5) printing few rows from the dataset : sepal.length sepal.width petal.length petal.width variety 0 5.1 3.5 1.4 0.2 Setosa 1 4.9 3.0 1.4 0.2 Setosa 2 4.7 3.2 1.3 0.2 Setosa 3 4.6 3.1 1.5 0.2 Setosa 4 5.0 3.6 1.4 0.2 Setosa 5 5.4 3.9 1.7 0.4 Setosa
要创建csv文件,我们使用Python列表,我们将包含每一行的数据集声明为列表,并且所有行都是大歌手列表中的子列表。我们还创建了另一个仅代表标题行的数据集。然后,我们使用各种方法(例如writerow()
和csv.writer)将文件最终写入本地系统。
import csv data = ["Month", "1958", "1959", "1960"] x = [ ["JAN", 340, 360, 417], ["FEB", 318, 342, 391], ["MAR", 362, 406, 419], ["APR", 348, 396, 461], ["MAY", 363, 420, 472], ["JUN", 435, 472, 535], ["JUL", 491, 548, 622], ["AUG", 505, 559, 606], ["SEP", 404, 463, 508], ["OCT", 359, 407, 461], ["NOV", 310, 362, 390], ["DEC", 337, 405, 432], ] y = "C:\\years.csv" with open(y, 'w') as work: z = csv.writer(work) z.writerow(data) z.writerows(x)
输出结果
运行上面的代码给我们以下结果-
Month,1958,1959,1960 JAN,340,360,417 FEB,318,342,391 MAR,362,406,419 APR,348,396,461 MAY,363,420,472 JUN,435,472,535 JUL,491,548,622 AUG,505,559,606 SEP,404,463,508 OCT,359,407,461 NOV,310,362,390 DEC,337,405,432
Uisng pandas是我们创建一个数据框,该国家/地区是行以及行的标题。然后,我们使用to_csv方法将文本文件名和路径作为参数,并将数据驱动到csv文件。
from pandas import DataFrame C = {'Month': ['JAN','FEB', 'MAR'], '1958': ['345', '435', '545'], '1959': ['377', '135', '985'], '1960': ['498', '354', '765'], } df = DataFrame(C, columns= ["Month", "1958", "1959", "1960"]) export_csv = df.to_csv (r'C:\\years_p.csv', index = None, header=True) # here you have to write path, where result file will be stored print (df)
输出结果
运行上面的代码给我们以下结果-
Month 1958 1959 1960 0 JAN 345 377 498 1 FEB 435 135 354 2 MAR 545 985 765