Python编程中使用csv文件
CSV文件(逗号分隔值文件)是跨平台存储和共享数据的最广泛使用的平面文件之一。列以逗号分隔,还有一个可选的标题行,用于指示每列的名称。Python可以使用许多模块来读取CSV文件。在本文中,我们将了解如何使用Python中的CSV库来读取和写入CSV文件。我们还可以看到仅使用pandas库读取CSV文件。
使用csv模块读取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'] ……………… ……………
使用Pandas读取CSV文件
Pandas库也可以用于读取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模块写入CSV文件
要创建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
使用pandas写入CSV文件
使用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
广告