码迷,mamicode.com
首页 > 其他好文 > 详细

pandas小结

时间:2019-03-15 14:27:04      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:core   ram   style   数据透视表   sse   apply   RKE   end   nbsp   

pandas part I:

# 总结:

  • DataFrame.loc[0:5] 一共6行数据,而切片[0:5]只有5个数据
  • 在对df的行数据删除后,有些index已缺失,此时用 iloc[]来按照位置索引
  • 取指定行 food_info.loc[[2,5,10]],传入list
  • 取指定列 zinc_copper = food_info[["Zinc_(mg)", "Copper_(mg)"]]
  • 取指定后缀名的列:
  • col_names = food_info.columns.tolist()
  • gram_columns = []
  • for c in col_names:
  •   if c.endswith("(g)"):
  •     gram_columns.append(c)

 

  • food_info.sort_values("Sodium_(mg)", inplace=True)  #默认升序,可以用 ascending=False来降序

pandas part II:

  • 根据age_is_null = titanic_survival["Age"].isnull(), 返回索引,
  • 根据索引的True,False,来获取null的集合: age_null_true = age[age_is_null]
  • 如果某列中有nan,任何运算结果都是nan
  • 取 good_ages = titanic_survival["Age"][age_is_null == False]
  • correct_mean_age = sum(good_ages) / len(good_ages)
  • 但是缺失数据的表很普遍,于是pandas用correct_mean_age = titanic_survival["Age"].mean()来解决nan问题
  • 按要求选取指定行:pclass_rows = titanic_survival[titanic_survival["Pclass"] == this_class]
  • 对指定行的某列进行运算: pclass_fares_mean = pclass_rows["Fare"].mean()
  • 数据透视表: 默认aggfunc为np.mean
  • passenger_survival = titanic_survival.pivot_table(index="Pclass", values="Survived", aggfunc=np.mean)
  • 多列透视表:values传入一个list
  • port_stats = titanic_survival.pivot_table(index="Embarked", values=["Fare","Survived"], aggfunc=np.sum)
  • 去掉有nan的列: titanic_survival.dropna(axis=1) #age canbin embark
  • 去掉指定列中有nan的行 : titanic_survival.dropna(axis=0,subset=["Age", "Sex"])
  • 取指定index行的某列的一个数据: titanic_survival.loc[83,"Age"]
  • 对所有列数据应用函数:
    def not_null_count(column):
      column_null = pd.isnull(column)
      null = column[column_null]
      return len(null)

    column_null_count = titanic_survival.apply(not_null_count)

pandas part III:

  • 获取Series的值 fandango[‘FILM‘].values
  • 取某一列为另一列的索引:series_custom = Series(fandango[‘RottenTomatoes‘].values , index=fandango[‘FILM‘].values)
  • 用series_name限制条件series_greater_than_50 = series_custom[series_custom > 50]
  • 取到所有列的类型:types = fandango_films.dtypes
  • types[types.values == ‘float64‘].index 本质上是从types 回到 索引上
  • deviations = fandango_films[float_columns].apply(lambda x: np.std(x)) 对所有float类型数据应用方差
  • groupby将一列中的元素进行分组,idxmax取出对应列group的最大索引位置,score_series=df.groupby("ID")["m_score"].idxmax()
  • df.groupby(df[‘class1‘])[‘data1‘] == df[‘data1‘].groupby(df[‘class1‘]) 是一个整体,要取出数据,则.idxmax()等操作
  • df.groupby(df[‘class1‘])[‘data1‘]  :   <pandas.core.groupby.SeriesGroupBy object at 0x000001F1CEDF0AC8>

 

pandas小结

标签:core   ram   style   数据透视表   sse   apply   RKE   end   nbsp   

原文地址:https://www.cnblogs.com/the-wolf-sky/p/10536737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!