1. 创建DataFrame

可以通过以下方式进行创建
1. list
2. dictionary
3. ndarrays
4. 2d ndnarrays等

通过dictionary
key默认为列名

#  索引自动添加
df = pd.DataFrame({'Student_1':[90,100, 95], 'Student_2':[60, 80, 100]})# 索引主动添加
df = pd.DataFrame({'Student_1':[90,100, 95], 'Student_2':[60, 80, 100]}, index=['Monday', 'Wednesday', 'Friday'])# 索引和列名主动添加
df1 = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['A', 'B'], columns=['C1', 'C2', 'C3'])



>>>df1.values
array([[1, 2, 3],[4, 5, 6]], dtype=int64)
>>>df1.index
Index(['A', 'B'], dtype='object')
>>>df1.columns
Index(['C1', 'C2', 'C3'], dtype='object')
>>>df1.shape
(2, 3)
>>>df1.size
6
>>>df1.T # 维度变化

>>>df1.head() # 查看头部数据
>>>df1.tail() # 产看尾部数据
>>>df1.describe() # 查看描述信息
>>>df1.loc['B'] # 按名称查索引
C1    4
C2    5
C3    6
Name: B, dtype: int64

通过list

>>>df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['A', 'B'], columns=['C1', 'C2', 'C3'])

>>>df.loc['B'].loc['C2']  # loc works on index
5
>>>df['C2'].loc['B']
5
>>>df.loc['B', 'C2']
5
>>>df.iloc[1, 1] # iloc works on position (only take integers)
5
>>>df + 10 # df中每个元素加10
>>>df['C2'] = df.apply(lambda x: x['C2'] ** 2 + 10, axis=1) # axis=1行操作

df.assign(C2 = lambda x: x['C2'] + 10, C3 = lambda x: x['C3'] * 2 - 10) # df未改变

>>>df.assign(C2 = lambda x: x['C2'] ** 2 + 10, C3 = lambda x: x['C3'] * 2 - 10).loc['A'] .max()
206

实例-kaggle泰坦尼克号幸存者数据

基本操作

>>>df = pd.read_csv('train.csv') # 读取文件
>>>df.shape # (891, 12)
>>>df.head()
>>>df.tail(2)
>>>df.isnull().head()
>>>df.isnull().sum()
>>>df.dtypes
>>>df.Survived.value_counts() # 对Survived特征进行数值统计
>>>df.Survived.value_counts().plot(kind='bar') # 画柱状图
>>>df.isnull().sum().plot(kind='bar') # 统计缺失值

处理缺失值

>>>df1 = df.drop('Cabin', axis=1) # 删除Cabin列
>>>df1['Age'] = df1['Age'].fillna(20) #也可以填充中位数,平均数,众数等
>>>df2 = df1[df1['Embarked'].notnull()]
>>>df3 = df.drop('Cabin', axis=1).assign(Age = lambda x: x['Age'].fillna(20)) #复合操作
>>>df1.loc[10:14, ['Name', 'Sex', 'Survived']]

df3.pivot_table(values='PassengerId', index='Survived', columns='Sex', aggfunc='count') # 作表

>>>df4 = df3.loc[df3['Survived'] == 1]
>>>df3 = df1.loc[df1['Age'] > 30]
>>>df4 = df2[['PassengerId', 'Name']].merge(df3[['PassengerId', 'Age']], on='PassengerId', how='outer')
>>>df['Pclass'].value_counts().plot.bar() # 画柱状图
>>>df['Embarked'].value_counts().plot.bar()
>>>df['Survived'].corr(df['Pclass']) # 求皮尔逊关系
-0.33848103596101475
>>>df['Survived'].corr(df['Age'])
-0.077221094572177643

【pandas学习笔记】DataFrame相关推荐

  1. pandas学习笔记:pandas.Dataframe.rename()函数用法

    pandas学习笔记:pandas.Dataframe.rename()函数用法 pandas.Dataframe.rename()函数主要是用来修改Dataframe数据的行名和列名. 主要用到的参 ...

  2. Pandas学习笔记(一)

    Pandas学习笔记一 Pandas数组读取 读取csv.tsv.txt文件 读取excel文件 读取mysql数据表 Pandas数据结构 创建Series的几种方法 根据标签查询Series数据 ...

  3. pandas学习笔记之DateFrame

    pandas学习笔记之DateFrame 文章目录 pandas学习笔记之DateFrame 1.DateFrame的创建 1)认识DataFrame对象 2)由二维列表创建(默认index和colu ...

  4. 数据分析之pandas学习笔记(六)(层次化索引、重塑、轴向旋转、行列变换、合并表数据)

    数据分析之Pandas学习笔记(六)(层次化索引.重塑.轴向旋转.行列变换.合并表数据) level层次化索引 unstack()与stack()进行重塑,即:行列索引变换 swaplevel()交换 ...

  5. [Pandas 学习笔记] - No.1 pandas学习笔记

    pandas学习笔记 pandas是基于numpy开发出的数据分析包,用于高效地操作大型数据集.pandas的数据结构有三种 分别为 series,dataframe和panel,对应一维,二维,三维 ...

  6. pandas学习笔记之Series

    pandas学习笔记之Series 文章目录 pandas学习笔记之Series pandas中Series的创建 1)用python中的列表list创建: 2)用numpy数组创建 3)用pytho ...

  7. pandas学习笔记(三):数据的变换与数据的管理

    注:学习笔记基于文彤老师的pandas的系列课程 课程链接:https://study.163.com/course/courseMain.htm?courseId=1005124008&sh ...

  8. Pandas 学习笔记一

    文章目录 Pandas 学习 核心数据结构 DataFrame 属性 Panel Series 基本数据操作 运算 Pandas 学习 核心数据结构 DataFrame import numpy as ...

  9. 数据处理Pandas学习笔记(一)

    import pandas as pd pandas值series创建 t = pd.Series([1, 2, 31, 12, 3, 4]) t 0 1 1 2 2 31 3 12 4 3 5 4 ...

  10. 数据分析(七)之pandas学习【dataFrame的使用】

    数据分析学习线路图 2.dataFrame的基本用法 2.1 dataFrame的创建 方法2: import numpy as np import pandas as pdt = pd.DataFr ...

最新文章

  1. python2 float类型_Python学习笔记2:基本数据类型
  2. iOS多线程编程:线程同步总结 NSCondtion
  3. Mui Webview下来刷新上拉加载实现
  4. 下载 golang.org/x 包出错不用代理的解决办法
  5. 同步规则和happen-before规则
  6. 收集18个高大上的浏览器小技巧
  7. 求有向图的简单路径_2020福建农信社招聘-关键路径
  8. 升级到AKU3.3 v1.1,感受智能手机的VGA模式
  9. 小型开发团队的测试误区
  10. 论文编写的9个实用软件
  11. MySQL子查询,多表查询
  12. 千万别用MongoDB?
  13. 微信小程序—那些安全验证,滑块验证、输入验证码、拼图验证
  14. 苹果手机点击输入框input 页面放大 超出屏幕问题
  15. 侵害个人信息被工信部点名仍未整改,桔子分期产品被下架,盛银消金和金美信消金为合作方
  16. CF 229C Triangles
  17. maven_使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开
  18. 抓取chrome所有版本密码
  19. android 为摄像头增加闪光灯(s5pv210)
  20. angr学习之ctf练习

热门文章

  1. Microsoft .NET Framework 4.6.1
  2. android 带边框的圆角按钮
  3. javascript——Array类型
  4. freebsd command
  5. 如何通过代码连接SQL Server数据库
  6. 小米AI实验室六篇论文获ICASSP2022收录,多模态语音唤醒挑战赛夺冠
  7. 前沿技术探秘:知识图谱构建流程及方法
  8. 自带数据线的迷你数显充电宝,旅途必备
  9. 技术不错的程序员,为何面试却“屡战屡败”
  10. MediaPipe:Google Research 开源的跨平台多媒体机器学习模型应用框架