​python3 pandas基本操作

#encodeing=utf-8
import numpy as np
import pandas as pd

s = pd.Series([i*2 for i in range(1,11)])
dates=pd.date_range("20170301", periods=8)
df=pd.DataFrame(np.random.randn(8,5),index=dates,columns=list("ABCDE"))
print(df)

随机生成8行5列 以dates作为index,ABCDE作为列

image.png

#打印前3行
print(df.head(3))

#打印后三行
print(df.tail(3))

image.png

#打印索引值
print(df.index)

#打印value
print(df.values)

image.png

#转制 索引和列转换
print(df.T)

image.png

print(df.sort(columns="C"))

我测试sort的时候尽然报错 可能是python3对排序重新定义了函数名

image.png

print(df.sort_index(axis=1,ascending=False))

image.png

print(df.describe())

image.png

#切片
print(df["A"])
print(type(df["A"]))

image.png

print(df[:3])
print("=============================================================")
print(df["20170301":"20170304"])
print("=============================================================")
print(df.loc[dates[0]])

image.png

print(df.loc["20170301":"20170304",["B","D"]])
print("=============================================================")
print(df.at[dates[0],"C"])

image.png

#通过下标进行选择
print(df.iloc[1:3,2:4])

image.png

#填条件进行筛选
print(df[df.B>0][df.A<0])
print("=============================================================")
print(df[df>0])
print("=============================================================")
print(df[df["E"].isin([1,2])])

image.png

df.iat[1,1]=1
print(df)

df.loc[:,"D"]=np.array([4]*len(df))
print(df)

df2=df.copy()
df2[df2>0]=-df2
print(df2)
df1=df.reindex(index=dates[:4],columns=list("ABCD")+["G"])
df1.loc[dates[0]:dates[1],"G"]=1
# print(df1)

#丢弃NaN的行
print(df1.dropna())

#填充NaN
print(df1.fillna(value=2))

image.png

image.png

image.png

image.png

image.png

http://www.imooc.com/video/14994

#encodeing=utf-8
import sys
import os
import re
import numpy as np
import pandas as pd
from pandas import Series, DataFrame, Panel

logfile = 'www.xxxxxx.com-access_log-20170521'

with open(logfile, 'r') as fo:
	log_list = []
	for line in fo:
		regex = '([(\d\.)]+) - - \[(.*?)\] "(.*?)" (\d+) (\d+|-)'
		rline = re.match(regex, line).groups()
		log_list.append(rline)

indexs=['IP','Time','Result','Status','No.']

df = DataFrame(log_list,columns=indexs)
print(df)
# print(df[df['IP'] == '42.120.160.97'])

image.png

像sql一样使用pandas 可以参考下面这篇文章

http://www.cnblogs.com/en-heng/p/5630849.html