import pandas as pd
pd.Series(['San Francisco', 'San Jose', 'Sacramento'])
city_names = pd.Series(['San Francisco', 'San Jose', 'Sacramento'])
population = pd.Series([852469, 1015785, 485199])
pd.DataFrame 'City name': city_names, 'Population': population }
california_housing_dataframe = pd.read_csv("ch.csv", sep=",")
california_housing_dataframe.describe()
california_housing_dataframe.describe()
california_housing_dataframe.head() # 可传入一个数量限制大小参数
california_housing_dataframe.head() # 与matplotlib包配合使用
三.访问数据
cities = pd.DataFrame({'City name': city_names, 'Population': population})
print(type(cities)) # <class 'pandas.core.frame.DataFrame'>
print(type(cities['City name'])) # <class 'pandas.core.series.Series'>
print(type(cities['City name'][1])) # <class 'str'>
print(type(cities[0:2])) # <class 'pandas.core.frame.DataFrame'>
四.操控数据
population / 1000.
import numpy as np
np.log(population)
population.apply(lambda val: val > 1000000)
cities['Area square miles'] = pd.Series([46.87, 176.53, 97.92])
cities['Population density'] = cities['Population'] / cities['Area square miles']
cities.reindex28([2, 0, 1])
cities.reindex(np.random.permutation(cities.index))
pd.read_csv(filename)
:从CSV文件导入数据pd.read_table(filename)
:从限定分隔符的文本文件导入数据pd.read_excel(filename)
:从Excel文件导入数据pd.read_json(json_string)
:从JSON格式的字符串导入数据pd.DataFrame(dict)
:从字典对象导入数据,Key是列名,Value是数据df.to_csv(filename)
:导出数据到CSV文件df.to_excel(filename)
:导出数据到Excel文件df.to_json(filename)
:以Json格式导出数据到文本文件pd.DataFrame(np.random.rand(20,5))
:创建20行5列的随机数组成的DataFrame对象pd.Series(my_list)
:从可迭代对象my_list创建一个Series对象df.index = pd.date_range('1900/1/30', periods=df.shape[0])
:增加一个日期索引df.head(n)
:查看DataFrame对象的前n行df.tail(n)
:查看DataFrame对象的最后n行df.shape()
:查看行数和列数df.info()
:查看索引、数据类型和内存信息df.describe()
:查看数值型列的汇总统计s.value_counts(dropna=False)
:查看Series对象的唯一值和计数df.apply(pd.Series.value_counts)
:查看DataFrame对象中每一列的唯一值和计数df[col]
:根据列名,并以Series的形式返回列df[[col1, col2]]
:以DataFrame形式返回多列s.iloc[0]
:按位置选取数据s.loc['index_one']
:按索引选取数据df.iloc[0,:]
:返回第一行df.iloc[0,0]
:返回第一列的第一个元素df.columns
= [‘a’,’b’,’c’]:重命名列名pd.isnull()
:检查DataFrame对象中的空值,并返回一个Boolean数组pd.notnull()
:检查DataFrame对象中的非空值,并返回一个Boolean数组df.dropna()
:删除所有包含空值的行df.dropna(axis=1)
:删除所有包含空值的列df.dropna(axis=1,thresh=n)
:删除所有小于n个非空值的行df.fillna(x)
:用x替换DataFrame对象中所有的空值s.astype(float)
:将Series中的数据类型更改为float类型s.replace(1,'one')
:用‘one’代替所有等于1的值s.replace([1,3],['one','three'])
:用’one’代替1,用’three’代替3df.rename(columns=lambda x: x + 1)
:批量更改列名df.rename(columns={'old_name': 'new_ name'})
:选择性更改列名df.set_index('column_one')
:更改索引列df.rename(index=lambda x: x + 1)
:批量重命名索引df[df[col] > 0.5]:
选择col列的值大于0.5的行f.sort_values(col1):
按照列col1排序数据,默认升序排列f.sort_values(col2, ascending=False):
按照列col1降序排列数据df.sort_values([col1,col2], ascending=[True,False])
:先按列col1升序排列,后
按col2降序排列数据df.groupby(col)
:返回一个按列col进行分组的Groupby对象df.groupby([col1,col2])
:返回一个按多列进行分组的Groupby对象df.groupby(col1)[col2]
:返回按列col1进行分组后,列col2的均值df.pivot_table(index=col1, values=[col2,col3], aggfunc=max)
:创建一个按列
col1进行分组,并计算col2和col3的最大值的数据透视表df.groupby(col1).agg(np.mean)
:返回按列col1分组的所有列的均值data.apply(np.mean)
:对DataFrame中的每一列应用函数np.meandata.apply(np.max,axis=1)
:对DataFrame中的每一行应用函数np.maxdf1.append(df2)
:将df2中的行添加到df1的尾部df.concat([df1, df2],axis=1)
:将df2中的列添加到df1的尾部df1.join(df2,on=col1,how='inner')
:对df1的列和df2的列执行SQL形式的join数据统计df.describe():查看数据值列的汇总统计df.mean()
:返回所有列的均值df.corr()
:返回列与列之间的相关系数df.count()
:返回每一列中的非空值的个数df.max()
:返回每一列的最大值df.min():返回每一列的最小值df.median()
:返回每一列的中位数df.std()
:返回每一列的标准差df.describe()
:查看数据值列的汇总统计df.mean()
:返回所有列的均值df.corr()
:返回列与列之间的相关系数df.count()
:返回每一列中的非空值的个数df.max()
:返回每一列的最大值df.min()
:返回每一列的最小值df.median()
:返回每一列的中位数df.std()
:返回每一列的标准差