可以直接按照官网的中文文档学习:https://www.pypandas.cn/docs/getting_started/basics.html
下面只写出其中我觉得以后可能会用到的几点。目前给我的感觉就像在代码中操作关系型数据库一样。
1、显示数据
pd.data_range:periods参数为,取这个日期后的六天
pd.DataFrame:rand参数,前面一个为行数,后面一个参数为列数。columns参数设置列名称
import pandas as pd
import numpy as np
dates = pd.date_range('20200317',periods=6)
# print(dates)
df = pd.DataFrame(np.random.rand(6,5),index=dates,columns=list('ABCDE'))
print(df)
输出结果:(结果会自动格式化)
多样化设置参数,输出每列的参数数据类型。
import pandas as pd
import numpy as np
df2=pd.DataFrame({'A':1,
'B':pd.Timestamp('20200317'),
'C':pd.Series(1,index=list(range(5)),dtype='int32'),
'D': np.array([3] * 5, dtype='int32'),
'E':pd.Categorical(['test','aa','bb','cc','ee']),
'F':'foo'})
print(df2.dtypes)
输出结果:
2、数据分页
数据初始化到对象之后,会有一个默认的顺序,由你插入数据的时候设定的。然后查询数据时可以查看前面几行,也可以查看最后几行,查看中间几行也是可以的。下面写一个类似于limit函数一样地使用方法。
import pandas as pd
dates = pd.date_range('20200317',periods=6)
df = pd.DataFrame(np.random.rand(6,5),index=dates,columns=list('ABCDE'))
print(df)
print(df[1:3])
输出结果:
根据主键来分页查询,并且显示指定字段。这种方式可以直接指定名称,也可以指定起始位置。
import pandas as pd
dates = pd.date_range('20200317',periods=6)
df = pd.DataFrame(np.random.rand(6,5),index=dates,columns=list('ABCDE'))
print(df.loc['2020-03-19':'2020-03-21',['A','B']])
print(df.iloc[1:4,0:3])
输出结果:
3、条件判断
使用randn函数可以生成负数,下面来实现取列A所有大于0的数据
import numpy as np
import pandas as pd
dates = pd.date_range('20200317',periods=6)
# print(dates)
df = pd.DataFrame(np.random.randn(6,5),index=dates,columns=list('ABCDE'))
print(df)
print(df[df.A > 0])
运行结果:
4、数值查询或者Pandas模糊匹配
可以实现一个字段模糊查询,是否包含指定值。下面针对数据中‘E'列字段,查询出包含字母“e”的数据。
import numpy as np
import pandas as pd
df2=pd.DataFrame({'A':1,
'B':pd.Timestamp('20200317'),
'C':pd.Series(1,index=list(range(5))),
'D':np.array([3] * 5),
'E':pd.Categorical(['test','aa','bb','cc','ee']),
'F':'foo'})
# print(df2.filter("E rlike '%a%").show())
print(df2)
print(df2[df2['E'].str.contains('e')])
执行结果:
5、读取写入文件
注意:先安装好xlrd和openpyxl,以确保下面代码执行不报错。
csv1.csv文件内容:
序号,列1,列2,列3 1,a,a,b 2,b,a,b 3,c,a,b 4,a,a,b 5,b,a,b 6,c,a,b 7,a,a,b 8,b,a,b 9,c,a,b
将上面这个文件读取,然后打印显示
import pandas as pd
import xlrd
date = pd.read_csv('csv1.csv')
print(date)
执行结果:
还可以将数据原封不动地插入到Excel文件,然后再读取出来。
import pandas as pd
import xlrd
date = pd.read_csv('csv1.csv')
#print(date)
date.to_excel('foo.xlsx')
date2 = pd.read_excel('foo.xlsx','Sheet1',index_col=None,na_values=['NA'])
print(date2)
输出结果:下面这个是从foo.xlsx文件里面读取出来的数据。