快速了解Pandas

可以直接按照官网的中文文档学习: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文件里面读取出来的数据。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章