Pandas IO操作

pandas中的IO读取和写入,常用读取函数由read_table,read_csv,read_excel,而写入函数有,to_csv(),to_excel()

pandas读取函数

读取函数具有的公共的参数

filepath_or_buffer
sep: str | None |
header: int | Sequence[int] | None | Literal["infer"] = "infer"

names: Sequence[Hashable] | None | lib.NoDefault = lib.no_default

index_col: IndexLabel | Literal[False] | None = None

这5个参数分别指:读取文件的路径;分割符;是否将数据第一行所为列索引;手动置顶的列索引;设置一列作为行索引

pd.read_csv()及pd.read_table()

pd.read_csv

这两个函数都是常用的pandas读取文件的函数,区别只有一处,就是用于划分每行数据的分割符不同,由于csv文件的默认分割符为‘,’所以pd.read_csv()默认的分割符为‘,’而pd.read_table()默认的分割符为'\t',用于指定分割符的参数为sep

比如当前目录下有一个名为csv文件.csv,内容如下

lucy,19,北京
mery,20,上海
tom,22,北京

这里我们使用pd.read_csv()进行文件的读取

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    data = pd.read_csv('csv文件.csv',header=None)
    print(data)

#       0   1   2
# 0  lucy  19  北京
# 1  mery  20  上海
# 2   tom  22  北京

如果将文件的分割符进行修改 

lucy 19  北京
mery 20  上海
tom 22  北京

可以看到这不是一个标准的csv文件,因为这里的分割符有空格,也有两个连续的空格

所以这里可以使用正则匹配中的表达式‘\s+’来匹配连续的空字符

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    data = pd.read_csv('csv文件.csv',sep = '\s+',header=None)
    print(data)
    
#       0   1   2
# 0  lucy  19  北京
# 1  mery  20  上海
# 2   tom  22  北京
pd.read_table()

由于read_table()中的sep参数可以手动设置,所以在实际操作中可以通过改变sep参数的值对具有不同分割符的文件进行的读取,这里将csv文件改为间隔符为\t

lucy    19    北京
mery    20    上海
tom    22    北京
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    data = pd.read_table('csv文件.csv',header=None)
    print(data)

#       0   1   2
# 0  lucy  19  北京
# 1  mery  20  上海
# 2   tom  22  北京

pd.read_excel()

pd.read_excel()相比前两个函数会多一个sheet_name参数,用于指定excel文件的sheet,sheet_name可以通过sheet名来指定,也可以通过索引指定,索引是从左到右的sheet为从0开始的整数索引

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    data = pd.read_excel('excel文件.xlsx',header=None,sheet_name=0)
    print(data)

#       0   1   2
# 0  lucy  19  北京
# 1  mery  20  上海
# 2   tom  22  北京

这里读取的是第一章表sheet,索引为0

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    data = pd.read_excel('excel文件.xlsx',header=None,sheet_name='order')
    print(data)

#      0      1   2
# 0    1  10001  14
# 1    2  10002  70
# 2    3  10003  36
# 3    4  10004  61
# 4    5  10005  11
# 5    6  10006  48
# 6    7  10007  37
# 7    8  10008  76
# 8    9  10009  41
# 9   10  10010  92
# 10  11  10011  58

这里通过指定sheet名为第二个sheet的名字order来读取ordersheet的内容 

pandas写入函数

pandas的写入函数,常用的与read对应分别为to_csv()和to_excel()

现在演示将刚读取的order sheet写入csv文件,

如果使用to_csv默认的分割符会设置为','不过也可以进行sep参数的设置来更改

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    data = pd.read_excel('excel文件.xlsx',header=None,sheet_name='order')
    data.to_csv('guoguo1.csv,index = False')
    data.to_csv('guoguo.csv',sep='\t',index=False,header = False)

可以注意到这里还设置了两个参数,index和header,默认都为True,作用为是否将行索引和列索引写入文件

你可以使用Pandas库来操作JSON文件。下面是一些常见的Pandas操作JSON文件的方法: 1. 读取JSON文件:使用`pd.read_json()`函数可以将JSON文件读取为一个Pandas DataFrame对象。例如,如果你的JSON文件名为"data.json",可以使用以下代码将其读取为DataFrame: ```python import pandas as pd df = pd.read_json('data.json') ``` 2. 将DataFrame保存为JSON文件:使用`to_json()`方法可以将DataFrame保存为JSON文件。例如,如果你的DataFrame名为df,并且你想将其保存为"output.json",可以使用以下代码: ```python df.to_json('output.json') ``` 3. 操作JSON数据:一旦将JSON文件读取为DataFrame,你可以使用Pandas提供的各种方法对数据进行操作。例如,你可以使用`head()`方法查看前几行数据,使用`describe()`方法获取统计信息,或者使用索引和条件过滤数据。 4. 处理嵌套的JSON数据:如果你的JSON文件包含嵌套的数据结构,可以使用Pandas的`json_normalize()`函数将其展平为DataFrame。这样,你就可以更方便地进行数据操作和分析。例如: ```python from pandas.io.json import json_normalize data = { "name": "John", "age": 30, "address": { "street": "123 Main St", "city": "New York", "state": "NY" } } df = json_normalize(data) ``` 这将把嵌套在"address"键下的数据展平为DataFrame的列。 这些是一些常见的Pandas操作JSON文件的方法。你可以根据具体的需求使用Pandas提供的其他功能来处理JSON数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值