1、文本格式数据的读写
关于文件的读取,CSDN已经有很多博主写的很详细,这里不再详细地叙说。但是笔者最近导入文件时,将文件路径直接复制上去,结果产生了报错,于是我就讲路径手动码上去,错误就没了。网上找了下原因,原来是复制的路径出现了\t的换行符,在pandas导入文件时识别不了就报错。
import pandas as pd
data = pd.read_excel('C:/Users/Blackpink/Desktop/学校作业/2月到3月的变化.xlsx')
#不能直接复制路径上去 否则会报错 因为有/t换行符直接复制粘贴会导致无法识别
data
报错
如果你想指定某一列为索引,可以利用index_col
data = pd.read_excel('C:/Users/Blackpink/Desktop/学校作业/2月到3月的变化.xlsx',index_col='日 期',parse_data='日 期')
data
输出
但是Excel表格中,日期在notebook显示并不是以日期显示的,而是天数。如果要转换为日期显示,可以使用一下方法。
首先建立个datetime量,再减去其Timedelta的天数,就能得到python的初始时间。
pd.to_datetime('2020-02-15') - pd.Timedelta('43876D')
输出Timestamp('1899-12-30 00:00:00')
再将其初始时间加上表中的天数就行了。
#定义函数用来将int日期进行转换
def date(stamp):
delta = pd.Timedelta(str(stamp)+'D')
real_time = pd.to_datetime('1899-12-30')+delta
return real_time
date(data.index[0])
#更改索引不能一个一个更改
data1 = data.copy()
a = []
for i in range(len(data1.index)):
a.append(date(data.index[i]))
data1.reindex(a)
在本章书上还讲到了Python %S,%d等格式化输出,我去找了相关知识点,发现其中一位博主总结到位:https://www.cnblogs.com/claidx/p/7253288.html
此外,利用时序生成简单的csv表格,操作如下:
import numpy as np
dates = pd.date_range('1/1/2020',periods=7)
ts = pd.Series(np.arange(7), index=dates)
ts.to_csv('tsSeries.csv')
输出得到csv文件
对于JSON的数据转换成python形式,可以使用json.loads方法
obj = """
{"name":"wes",
"places_lived":["United States","Spain","Germany"],
"pet": null,
"siblings": [{"name":"Scott","age":30, "pets":["Zeus","Zuko"]},
{"name":"Katie","age":38,
"pets": ["Sixes","Stache","Cisco"]}]
}
"""
import json
result = json.loads(obj)
result
输出
{'name': 'wes',
'places_lived': ['United States', 'Spain', 'Germany'],
'pet': None,
'siblings': [{'name': 'Scott', 'age': 30, 'pets': ['Zeus', 'Zuko']},
{'name': 'Katie', 'age': 38, 'pets': ['Sixes', 'Stache', 'Cisco']}]}
然后可以将以上转换成的字典转到DataFrame中
siblings = pd.DataFrame(result['siblings'], columns=['name','age'])
siblings
输出
2、二进制格式
利用request的方法可以获取json网页的内容
import requests
response = requests.get("http://www.baidu.com")
print(response.text)
输出
以上就是这一书第六章我认为重要知识点的笔记,有错误之处希望指出,谢谢。