前言
最近用到pandas库比较多,现把基本用法总结如下,我将会从下面几个角度去总结:
- 读入,写出文件
- 删除行、列
- 增加行、列
- 遍历方法
- 取值
增加列
import pandas as pd
filename = "1.csv"
pf = pd.read_csv(filename)
# 通过列名增加,也是增加在最后一列
pf['A'] = [1,2,3,4]
# 通过列标增加,增加在最后一列
pf.iloc[:,-1] = [1,2,3,4]
增加行
import pandas as pd
filename = "1.csv"
pf = pd.read_csv(filename)
# 直接通过append增加
list = [1,2,3,4]
pf.append(list)
# 通过行标增加,增加在最后一行
pf.iloc[-1,:] = [1,2,3,4]
删除列、行
import pandas as pd
filename = "1.csv"
pf = pd.read_csv(filename)
# 直接通过列名删除,删除最后一列
list = [1,2,3,4]
pf.drop([pf.columns[-1]],axis=1,inplace=True)
# 也可以通过名字删除行,如删除'a'行,默认代表行,axis=1代表列,inplace=True代表从源数据表中删除
pf.drop(['a'])
取列数和行数
import pandas as pd
filename = "1.csv"
pf = pd.read_csv(filename)
pf.shape[1] #列数
pf.shape[0] #行数
读入写出文件
以.csv
为例
import pandas as pd
filename = "1.csv"
pf = pd.read_csv(filename)
outfilename = 'out.csv'
pf.to_csv(outfilename,index=False) # index为False可以去掉行列索引
遍历数据
import pandas as pd
filename = "1.csv"
pf = pd.read_csv(filename)
for index,row in pf.iterrows():
pass
# 其中index代表行标,row每一行的series类型,取列值:row[pf.columns[-1]]
# 遍历series类型
for index,row in pf.iloc[0].items():
pass
# index 代表每个值的索引,row代表值
"""取值的话,一般是values"""
#如:pf.iloc[:,1].values 所有行的第二列的值
打乱dataframe里面的值
一般用sample
方法实现
import pandas as pd
data = pd.Dataframe()
# 打乱数据,按行打乱
newdata = data.sample(frac=1) # 其中frac是打乱的比例,并返回打乱的数据
# 只打乱某一列的数据
column_data = data.iloc[:,1].sample(frac=1) # 类型是series
# 修改源表的该列值
data.iloc[:,1] = column_data.values
pybloom使用
from pybloom import BloomFilter
bf = BloomFilter(1000000, 0.01)
list1 = [1,2,3,4,5]
list2 = [1,2]
count = 0
for iterm in list1:
bf.add(iterm)
for value in list2:
if value in bf:
count = count + 1
# bf.count = 4
# count = 2