导入
import pandas as pd
文件读取与写入
读取
df = pd.read_csv()
df_txt = pd.read_table()
df_excel=pd.read_excel()
写入
df.to_csv()
df.to_excel()
基本数据结构
- Series
Series定义
Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
示例,创建一个Series
s=pd.Series([0,1,2,3,4],index=['a','b','c','d','e'],name='tihs is a Series',dtype='int')
- Dataframe
a. Dataframe定义
class DataFrame(data=None, index: Optional[Axes]=None, columns: Optional[Axes]=None, dtype: Optional[Dtype]=None, copy: bool=False)
示例,创建一个Dataframe。
df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('⼀⼆三四五'))
b.从DataFrame出⼀列为Series
df['col1']
df['col1']
c.修改行或列名
原数据不会改变,需加上inplace=True。
df.rename(index={'⼀':'one'},columns={'col1':'new_col1'},'\n',df)
d.索引对齐特性
: df1 = pd.DataFrame({'A':[1,2,3]},index=[1,2,3])
df2 = pd.DataFrame({'A':[1,2,3]},index=[3,1,2])
df1-df2 #由于索引对⻬因结果不是0
e.assign方法
添加列,不会修改原数据。
k=df.assign(C=pd.Series(list('defcb'),index=list('⼀⼆三四五')))
f.根据类型选择列
df.select_dtypes(include=['number'])
常用基本函数
- head和tail
df.head()#头部数据,可加数字指定显示行数
df.tail()#尾部数据,可加数字指定显示行数
- unique和nunique
nunique显有多少个唯⼀值
df['Physics'].nunique()
unique显所的唯⼀值
df['Physics'].unique()
- count和value_counts
count回失值元素个数
df['Physics'].count()
value_counts回每个元素少个
df['Physics'].value_counts()
- idxmax和nlargest
idxmax函数反回最大值所在索引
df['Math'].idxmax()
nlargest函数反回前几个最大的元素值
df['Math'].nlargest(3)
- apply函数
df['Math'].apply(lambda x:str(x)+'!').head()