Pandas实战——DataFrame

pandas in action.png

原书地址

本篇笔记为原书第四章节的内容。

  • 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

你可能感兴趣的:(Pandas实战——DataFrame)