作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6
- 本文已收录于Python全栈系列专栏:《100天精通Python从入门到就业》
- 此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣
- 订阅专栏后续可以阅读Python从入门到就业100篇文章;还可私聊进两百人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
- 加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!
文本文件,主要包括csv和txt两种等,相应接口为read_csv()和to_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=','
:默认以,为数据分隔符(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 广东
跳过前n行
>>> df = pd.read_csv(r"E:\Python学习\test.csv", skiprows=2)
>>> print(df)
小明 20
0 小白 30
只读前几行
>>> df = pd.read_csv(r"E:\Python学习\test.csv", nrows =2)
>>> print(df)
name age
0 小红 10
1 小明 20
index_col = [‘col_1’,‘col_2’]:读取指定的几列。整数或者字符串或者整数/字符串列表。指定用作的行标签的列。
感觉有问题,和我想象中不同:
>>> 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 = range(0,50):表示以[0…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
格式代码:
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')
>>>
>>> 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')
设置分隔符
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test2.csv', sep=';') # 设置;号为分割符
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:指定哪些列写进去。
>>> 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=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:关于索引的,默认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
【书籍内容简介】
- 本书涵盖通信框架、设备驱动管理器的设计、插件引擎设计、序列号的设计、OPC Server和OPC Client服务介绍及应
用案例分享等内容,全面介绍物联网软件框架的整体实现过程。本书逻辑性强、整体性好,适合有一定编程基础的开发
人员、框架设计人员、方案设计人员和即将步入职场的高校学生学习。