2021-06-19第二章第二节数据重构

2.4 数据合并

2.4.1载入数据

截屏2021-06-19 13.01.24.png

  • text_left_up=pd.read_csv('./titanic/data/train-left-up.csv')
    text_left_down=pd.read_csv('./titanic/data/train-left-down.csv')
    text_right_up=pd.read_csv('./titanic/data/train-right-up.csv')
    text_right_down=pd.read_csv('./titanic/data/train-right-down.csv')
    发现:四个数据都是train.csv的一部分合并起来将会是一个完整的train.csv

2.4.2合并数据
concat不仅可以指定连接的方式(outer join或inner join)还可以指定按照某个轴进行连接。
join:合并的时候索引的对齐方式,默认是outer join,也可以是inner join
ignore_index:是否忽略掉原来的数据索引

截屏2021-06-19 13.27.29.png

2.4.3合并result_down \ result

  • list_2 = [text_left_down, text_right_down]
    result_down = pd.concat(list_2, axis=1, join='outer', ignore_index=False)
    result_down
  • list_3 = [result_up, result_down]
    result = pd.concat(list_3, axis=0, join='outer', ignore_index=False)
    result
    2.4.4 任务四:使用DataFrame自带的方法join方法和append
  • append是默认(axis = 0)
  • result_up = text_left_up.join(text_right_up)
    result_up
  • result_down = text_left_down.join(text_right_down)
    result_down
  • result = result_up.append(result_down)
    result
    2.4.5 任务五:使用Panads的merge方法和DataFrame的append
  • result = df1.append(df2)
  • merge用于表内部基于 index-on-index 和 index-on-column(s) 的合并,但默认是基于index来合并。
  • result_up = pd.merge ( text_left_up,text_right_up, left_index=True, right_index=True)
    result_up
    参考:https://blog.csdn.net/stevenkwong/article/details/52540605
    截屏2021-06-19 14.14.53.png

    参考:https://zhuanlan.zhihu.com/p/45442554

2.5 换一种角度

2.5.1 任务一:将我们的数据变为Series类型的数据

  • stack()即“堆叠”,作用是将列旋转到行

数据运用

2.6.1 任务一:groupby
Groupby的作用是进行数据的分组以及分组后地组内运算
https://www.cnblogs.com/Yanjy-OnlyOne/p/11217802.html
https://www.jianshu.com/p/42f1d2909bb6

截屏2021-06-19 14.44.39.png

2.6.2 任务二:计算泰坦尼克号男性与女性的平均票价

截屏2021-06-19 14.49.19.png

mean()为平均值
sum()为总和
groupby('分的组类')['被分的数'].mean()
2.6.3 任务三:统计泰坦尼克号中男女的存活人数

  • text.groupby('Sex')['Survived'].sum()

2.6.4 任务四:计算客舱不同等级的存活人数

  • text.groupby('Pclass')['Survived'].sum()

agg更加简洁, 而且传给它的函数可以是字符串,也可以自定义,参数是column对应的子DataFrame
参考:https://zhuanlan.zhihu.com/p/109820274)

2.6.5 任务五:统计在不同等级的票中的不同年龄的船票花费的平均值

  • text.groupby(['Pclass','Age'])['Fare'].mean()

2.6.6:任务六:将任务二和任务三的数据合并,并保存到sex_fare_survived.csv

截屏2021-06-19 15.38.33.png

pd.merge 形成了一个新的dataframe

2.6.7:任务七:得出不同年龄的总的存活人数,然后找出存活人数的最高的年龄,最后计算存活人数最高的存活率(存活人数/总人数)

  • Python中的str可以表示字符串类,也可以是将变量强制转换为字符串的函数,写作str()
  • precetn = Survived_sum.max()/Sum_survived
    print("最大存活率:"+str(precetn))


    截屏2021-06-19 22.06.55.png

你可能感兴趣的:(2021-06-19第二章第二节数据重构)