1.简介:
pandas是一个开源的python数据分析库提供了快速,灵活和表达力强的数据结构,使数据清洗和分析工作变得更加简单易行。pandas的核心数据结构是DataFrame和Series
2.DataFrame的基本操作:
DataFrame是pandas库中的一个二维标签化数据结构,DataFrame中的每一列都可以看作是一个Series
import pandas as pd
import numpy as np
#创建了一个从2021年1月开始的30个月的日期范围的pandas DatetimeIndex
#pd.date_range函数是生成日期序列的常用方法
#periods = 30表示生成30个日期
#freq = "M"表示每个月
dates = pd.date_range("20210101",periods=30,freq="M")
输出结果为:
DatetimeIndex(['2021-01-31', '2021-02-28', '2021-03-31', '2021-04-30',
'2021-05-31', '2021-06-30', '2021-07-31', '2021-08-31',
'2021-09-30', '2021-10-31', '2021-11-30', '2021-12-31',
'2022-01-31', '2022-02-28', '2022-03-31', '2022-04-30',
'2022-05-31', '2022-06-30', '2022-07-31', '2022-08-31',
'2022-09-30', '2022-10-31', '2022-11-30', '2022-12-31',
'2023-01-31', '2023-02-28', '2023-03-31', '2023-04-30',
'2023-05-31', '2023-06-30'],
dtype='datetime64[ns]', freq='M')
import pandas as pd
import numpy as np
dates = pd.date_range('20210101',periods=30,freq='M')
#index = dates 索引值为datas中的日期
date = pd.DataFrame(np.random.rand(30,3),columns=list('ABC'),index=dates)
此代码创建了一个包含30行3列的DataFrame,其中索引是之前生成的日期范围,列名是"A","B","C"。
3.plot快速可视化
import pandas as pd
import numpy as np
import matplotlib.pyplot as pltdf = np.random.randn(1000)
df = pd.DataFrame(df,index=pd.date_range('20210101',periods=1000))
print(df)
df.plot()
plt.show()
此代码生成了一个包含1000个随机数的单变量数据集,并使用pd.date_range为每个数据点创建了日期索引,然后,将这个numpy数组转化为pandas DataFrame,并使用pandas绘图功能。
输出结果为:
4.io读取与存储
(1):csv
import pandas as pd
import numpy as npdata = pd.DataFrame(np.random.randn(1000,3),columns = ['a','b','c'],index = pd.date_range('20210101',periods = 1000))
data.index.names = ['date']
data.to_csv('txt.csv')
data1 = pd.read_csv('txt.csv')
print(data1)
在同级目录中把数据保存在以csv格式的文件中
(2):excel
import pandas as pd
import numpy as npdata = pd.DataFrame(np.random.randn(1000,3),columns = ['a','b','c'],index = pd.date_range('20210101',periods = 1000))
data.to_excel('excel.xlsx',sheet_name='a')
将数据存储在同级目录中的Excel文件中,若想追加新的sheet页,
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(1000,3),columns = ['a','b','c'],index = pd.date_range('20210101',periods = 1000))
data.to_excel('excel.xlsx',sheet_name='a')
with pd.ExcelWriter('writerExcel.xlsx',mode='a',engine='openpyxl') as writer:data.to_excel(writer,sheet_name='d')