Python Pandas读写txt和csv文件的方法详解

作者:无 时间:2022-08-05 17:06:31 

一、文本文件

文本文件,主要包括csv和txt两种等,相应接口为read_csv()和to_csv(),分别用于读写数据

1. read_csv()

格式代码:

pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

常用参数

  • filepath_or_buffer:文件路径

  • sep=',':默认以,为数据分隔符

  • skiprows:跳过前几行

  • nrows :只读前几行

  • parse_dates = [‘col_name’]:指定某行读取为日期格式

  • index_col = [‘col_1’,‘col_2’]:读取指定的几列

  • error_bad_lines = False :当某行数据有问题时,不报错,直接跳过,处理脏数据时使用

  • na_values = ‘NULL’:将NULL识别为空值

  • header = 0:表示以数据的第一行为列索引

  • encoding = “utf-8”:表明以utf-8为编码规则。

  • names = range(0,50)):表示以[0…49]为列索引的名字

(1)读取csv文件:

>>> import pandas as pd
>>>
>>> df = pd.read_csv(r"E:\Python学习\test.csv")
>>> print(df)
 name  age
0   小红   10
1   小明   20
2   小白   30
>>> print(type(df))
<class 'pandas.core.frame.DataFrame'>
>>> # 行和列
>>> print(df.shape)
(3, 2)
>>> print(list(df.columns))
['name', 'age']

(2)读取txt文件:

>>> df = pd.read_csv(r"E:\Python学习\test.txt")
>>> print(df)
  北京
0  上海
1  成都
2  深圳
3  广州
4  广东

skiprows

跳过前n行

>>> df = pd.read_csv(r"E:\Python学习\test.csv", skiprows=2)
>>> print(df)
  小明  20
0  小白  30

nrows

只读前几行

>>> df = pd.read_csv(r"E:\Python学习\test.csv", nrows =2)
>>> print(df)
 name  age
0   小红   10
1   小明   20

index_col

index_col = [&lsquo;col_1&rsquo;,&lsquo;col_2&rsquo;]:读取指定的几列。整数或者字符串或者整数/字符串列表。指定用作的行标签的列。

感觉有问题,和我想象中不同:

>>> df = pd.read_csv(r"E:\Python学习\test.csv", index_col  =['name'])
>>> print(df)
     age
name
小红     10
小明     20
小白     30
>>> df = pd.read_csv(r"E:\Python学习\test.csv", index_col=1)
>>> print(df)
   name
age
10    小红
20    小明
30    小白

names

names = range(0,50):表示以[0&hellip;49]为列索引的名字

不与header=0共同使用:

>>> df = pd.read_csv(r"E:\Python学习\test.csv", names=['姓名', '年龄'])
>>> print(df)
    姓名   年龄
0  name  age
1    小红   10
2    小明   20
3    小白   30

header=0共同使用:

>>> df = pd.read_csv(r"E:\Python学习\test.csv", header=0, names=['姓名', '年龄'])
>>> print(df)
  姓名  年龄
0  小红  10
1  小明  20
2  小白  30

2. to_csv()

格式代码:

pd.to_csv(path_or_buf,sep,na_rep,columns,header,index)

常用参数:

path_or_buf:str:放文件名、相对路径、文件流等。

sep:分隔符。与read_csv()中sep参数意思一样。

na_rep:将NaN转换为特定值。

columns:指定哪些列写进去。

header;默认header=0,如果没有表头,设置header=None。

index:关于索引的,默认True,写入索引。

(1)写入csv文件:

>>> import pandas as pd
>>>
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> print(df)
  A  B    C
0  1  2  NaN
1  3  4  5.0
>>> print(type(df))
<class 'pandas.core.frame.DataFrame'>
>>> df.to_csv('test1.csv')
>>>

可以看到生成了新文件:

Python Pandas读写txt和csv文件的方法详解

我们读取看看:

>>> df1 = pd.read_csv(r"test1.csv", header=0, encoding="utf-8")
>>> print(df1)
  A  B    C
0  1  2  NaN
1  3  4  5.0

(2)写入txt文件:

>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test1.txt')

生成新文件:

Python Pandas读写txt和csv文件的方法详解

sep

设置分隔符

>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test2.csv', sep=';') # 设置;号为分割符

可以看到分隔符为分号:

Python Pandas读写txt和csv文件的方法详解

na_rep

na_rep:将NaN转换为特定值。

>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test3.csv', na_rep='100') # 空值替换为100
>>>
>>> df1 = pd.read_csv('test3.csv')
>>> print(df1)
  Unnamed: 0  A  B      C
0           0  1  2  100.0
1           1  3  4    5.0

columns

columns:指定哪些列写进去。

>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test4.csv', columns=['A','B']) # 只写入A、B列
>>>
>>> df1 = pd.read_csv('test4.csv')
>>> print(df1)
  Unnamed: 0  A  B
0           0  1  2
1           1  3  4

header

header;默认header=0,如果没有表头,设置header=None。

>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test5.csv', header=None)
>>>
>>> df1 = pd.read_csv('test5.csv')
>>> print(df1)
  0  1  2  Unnamed: 3
0  1  3  4         5.0

index

index:关于索引的,默认True,写入索引

不保留索引:

>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test6.csv', index=False)
>>>
>>> df1 = pd.read_csv('test6.csv')
>>> print(df1)
  A  B    C
0  1  2  NaN
1  3  4  5.0

来源:https://blog.csdn.net/yuan2019035055/article/details/126908798

标签:Python,Pandas,txt,csv
0
投稿

猜你喜欢

  • 谈谈XHTML中CDATA

    2007-09-17 12:45:00
  • python如何从键盘获取输入实例

    2021-02-21 07:21:47
  • python matplotlib工具栏源码探析二之添加、删除内置工具项的案例

    2022-05-16 19:31:22
  • python石头剪刀布小游戏(三局两胜制)

    2021-07-24 00:06:30
  • tensorflow-gpu安装的常见问题及解决方案

    2021-08-18 11:31:18
  • JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome

    2024-04-16 09:37:25
  • mysql 按中文字段排序

    2024-01-14 18:04:19
  • Golang压缩Jpeg图片和PNG图片的操作

    2024-05-09 14:55:43
  • 一文带你搞懂PHP单例模式

    2023-05-25 02:23:05
  • SQL Server在AlwaysOn中使用内存表的“踩坑”记录

    2024-01-26 03:49:10
  • 如何使用Python生成Hilbert矩阵

    2021-08-09 12:36:08
  • Pygame框架实现飞机大战

    2023-09-15 02:14:24
  • 一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系

    2022-06-27 14:21:53
  • Javascript的动态增加类的实现方法

    2023-10-15 03:03:25
  • Python利用Scrapy框架爬取豆瓣电影示例

    2022-04-30 15:16:17
  • python机器学习GCN图卷积神经网络原理解析

    2022-09-29 06:36:14
  • 对于任意的XML的遍历

    2008-09-05 17:11:00
  • python爬虫之场内ETF基金获取

    2021-08-18 17:51:34
  • Python-接口开发入门解析

    2022-05-24 09:19:43
  • Django静态资源URL STATIC_ROOT的配置方法

    2022-11-24 00:06:53
  • asp之家 网络编程 m.aspxhome.com