本篇笔记为原书第四章节的内容。
- The DataFrame Oject
DataFrame是二维行列的表格型数据结构。如下图所示5行2列:
DataFrame
DataFrame创建
- 字典创建DataFrame
city_data = {
"City": ["New York City", "Paris", "Barcelona", "Rome"],
"Country": ["United States", "France", "Spain", "Italy"],
"Population": [8600000, 2141000, 5515000, 2873000]
}
cities = pd.DataFrame(city_data)
cities
from dict
- Numpy的数据创建DataFrame
pd.DataFrame(np.random.randint(1, 101, [3, 5]))
from narray
- 指定index和column_labels
random_data = np.random.randint(1, 101, [3, 5])
row_labels = ["Morning", "Afternoon", "Evening"]
column_labels = (
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
)
pd.DataFrame(
data = random_data,
index = row_labels,
columns = column_labels,
)
index && columns
-
read_csv()创建DataFrame
read_csv
DataFrame属性及方法
属性
- df.dytpes
- df.index
- df.columns
- df.ndim
- df.shape
- df.size
方法
- df.count()
- df.head(),df.tail()
- df.sample()
- df.nunique()
- df.max()
- df.min()
- df.nlargest(n=n, colums=['colums-name'])
- df.nsmallest()
- df.sum()
- df.mean() # 通过numeric_only来指定只对数值型数据进行操作
- df.median() # 通过numeric_only来指定只对数值型数据进行操作
- df.mode() # 通过numeric_only来指定只对数值型数据进行操作
- df.std() # 通过numeric_only来指定只对数值型数据进行操作
DataFrame排序操作
sort_values()
-
df.sort_values(by=['colums-name',], ascending=False) # 支持多列排序
sort_values
sort_index()
sort_index对列标签进行排序
axis params设置新index
-
set_index()
set_index
取DataFrame的行或列值
取列值
- df.columns-name # .列名即可返回该列下的所有值
- df['col-name'] # 以上面结果一样
- df[ ['col1', 'col2'] ] # 获取多列值
-
df.select_dtypes(include=dtype) # 通过include或exclude参数对类型数据进行提取,支持多种类型过滤
select_dtypes
取行值
-
df.loc() # 通过行标签值来提取数据,支持多标签行取值,标签值区间取值,标签值切片方式取值
loc()
-
df.iloc() # 通过索引位置值进行数据提取 iloc = index location,支持多行数值提取,区间,切片方式提取
iloc()
-
指定行列进行数据提取,指定loc或iloc里的第二个参数
row-clo values -
at()或iat()方法进行数据提取
at&&iat
对行列重命名
-
df.rename(index={'old' : 'new'})
-
df.rename(columns={'old' : 'new'})
-
df.reset_index() # 会自动生成数值型的index
-
df.set_index('col-name') # 以col-name作为行标签,会替换掉原来的行标签值,原标签值丢弃掉
reset_index && set_index
网友评论