数据分析之Pandas(2)

3.Pandas

文章目录

    • 3.Pandas
      • 3.3 Pandas进阶
        • 3.3.1 数据重塑和轴向旋转
          • (1)层次化索引
            • Series的层次化索引
            • DataFrame的层次化索引
            • 层次化——电影数据示列
          • (2)数据旋转
        • 3.3.2 数据分组、分组运算
        • 3.3.3 离散化处理
        • 3.3.4 合并数据集
          • (1)append
          • (2)merge
          • (3)concat

3.3 Pandas进阶

import pandas as pd
import numpy as np

3.3.1 数据重塑和轴向旋转

(1)层次化索引

层次化索引是pandas的一项重要功能,他能使我们再一个轴上拥有多个索引

Series的层次化索引
s=pd.Series(np.arange(1,10),index=[['a','a','a','b','b','c','c','d','d'],[1,2,3,1,2,3,1,2,3]])
s
a  1    1
   2    2
   3    3
b  1    4
   2    5
c  3    6
   1    7
d  2    8
   3    9
dtype: int32
s.index
MultiIndex([('a', 1),
            ('a', 2),
            ('a', 3),
            ('b', 1),
            ('b', 2),
            ('c', 3),
            ('c', 1),
            ('d', 2),
            ('d', 3)],
           )
s['a':'b']
a  1    1
   2    2
   3    3
b  1    4
   2    5
dtype: int32
s[:,1]
a    1
b    4
c    7
dtype: int32

通过unstack方法可以将Series变成一个DataFrame

在这里插入图片描述

s.unstack()
123
a1.02.03.0
b4.05.0NaN
c7.0NaN6.0
dNaN8.09.0
s.unstack().stack()
a  1    1.0
   2    2.0
   3    3.0
b  1    4.0
   2    5.0
c  1    7.0
   3    6.0
d  2    8.0
   3    9.0
dtype: float64
DataFrame的层次化索引

对于DataFrame来说,行和列都能够进行层次化索引。

data=pd.DataFrame(np.arange(12).reshape(4,3))
data
012
0012
1345
2678
391011
data=pd.DataFrame(np.arange(12).reshape(4,3),index=[['a','a','b','b'],[1,2,1,2]])
data
012
a1012
2345
b1678
291011
data=pd.DataFrame(np.arange(12).reshape(4,3),index=[['a','a','b','b'],[1,2,1,2]],columns=[['A','A','B'],['Z','X','C']])
data

在这里插入图片描述

选取列

data['A']

在这里插入图片描述

设置名称

data.index.names=['row1','row2']
data

在这里插入图片描述

data.columns.names=['column1','column2']
data

在这里插入图片描述

行顺序调整

data.swaplevel('row1','row2')

在这里插入图片描述

层次化——电影数据示列

数据导入

df=pd.read_excel('movie_data2.xlsx')
df.head()
Unnamed: 0名字投票人数类型产地上映时间时长年代评分首映地点
00肖申克的救赎692795剧情/犯罪美国1994-09-10 00:00:0014219949.6多伦多电影节
11控方证人42995剧情/悬疑/犯罪美国1957-12-17 00:00:0011619579.5美国
22美丽人生327855剧情/喜剧/爱情意大利1997-12-20 00:00:0011619979.5意大利
33阿甘正传580897剧情/爱情美国1994-06-23 00:00:0014219949.4洛杉矶首映
44霸王别姬478523剧情/爱情/同性中国大陆1993-01-01 00:00:0017119939.4香港
df.drop('Unnamed: 0',axis=1)
df.index
RangeIndex(start=0, stop=38166, step=1)

set_index:可以把列变成索引
reset_index:把索引变成列

把产地和年代同时设置成索引,产地是外层索引,年代是内层索引

df=df.set_index(['产地','年代'])
df.head()

在这里插入图片描述

每一个索引都是一个元组

df.index[0]
('美国', 1994)

获取所有的美国电影,由于产地信息已经变成了索引,因此可以用loc方法

df.loc['美国'].head()

| | 名字 | 投票人数 | 类型 | 上映时间 | 时长 | 评分 | 首映地点 |
| —: | —: | -----------: | -------: | -------------: | ------------------: | —: | —: | -----------: |
| 年代 | | | | | | | |
| 1994 | 肖申克的救赎 | 692795 | 剧情/犯罪 | 1994-09-10 00:00:00 | 142 | 9.6 | 多伦多电影节 |
| 1957 | 控方证人 | 42995 | 剧情/悬疑/犯罪 | 1957-12-17 00:00:00 | 116 | 9.5 | 美国 |
| 1994| 阿甘正传 | 580897 | 剧情/爱情 | 1994-06-23 00:00:00 | 142 | 9.4 | 洛杉矶首映 |
| 2012 | 泰坦尼克号 | 157074 | 剧情/爱情/灾难 | 2012-04-10 00:00:00 | 194 | 9.4 | 中国大陆 |
| 1993 | 辛德勒的名单 | 306904 | 剧情/历史/战争 | 1993-11-30 00:00:00 | 195 | 9.4 | 华盛顿首映 |

这样做最大的好处就是我们可以简化很多的筛选环节

索引交换 swaplevel

df=df.swaplevel('产地','年代')
df.head()

在这里插入图片描述

取消层次化索引

df=df.reset_index()
df.head()
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点
01994美国0肖申克的救赎692795剧情/犯罪1994-09-10 00:00:001429.6多伦多电影节
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-17 00:00:001169.5美国
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-20 00:00:001169.5意大利
31994美国3阿甘正传580897剧情/爱情1994-06-23 00:00:001429.4洛杉矶首映
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.4香港
(2)数据旋转

行列转化

data=df[:5]
data
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点
01994美国0肖申克的救赎692795剧情/犯罪1994-09-10 00:00:001429.6多伦多电影节
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-17 00:00:001169.5美国
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-20 00:00:001169.5意大利
31994美国3阿甘正传580897剧情/爱情1994-06-23 00:00:001429.4洛杉矶首映
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.4香港

T 可以直接让数据的行和列进行交换

data.T
01234
年代19941957199719941993
产地美国美国意大利美国中国大陆
Unnamed: 001234
名字肖申克的救赎控方证人美丽人生阿甘正传霸王别姬
投票人数69279542995327855580897478523
类型剧情/犯罪剧情/悬疑/犯罪剧情/喜剧/爱情剧情/爱情剧情/爱情/同性
上映时间1994-09-10 00:00:001957-12-17 00:00:001997-12-20 00:00:001994-06-23 00:00:001993-01-01 00:00:00
时长142116116142171
评分9.69.59.59.49.4
首映地点多伦多电影节美国意大利洛杉矶首映香港

dataframe也可以使用stack和unstack,转化为层次索引的Series

data.stack()
0  年代                           1994
   产地                             美国
   Unnamed: 0                      0
   名字                         肖申克的救赎
   投票人数                       692795
   类型                          剧情/犯罪
   上映时间          1994-09-10 00:00:00
   时长                            142
   评分                            9.6
   首映地点                       多伦多电影节
1  年代                           1957
   产地                             美国
   Unnamed: 0                      1
   名字                           控方证人
   投票人数                        42995
   类型                       剧情/悬疑/犯罪
   上映时间          1957-12-17 00:00:00
   时长                            116
   评分                            9.5
   首映地点                           美国
2  年代                           1997
   产地                            意大利
   Unnamed: 0                      2
   名字                          美丽人生 
   投票人数                       327855
   类型                       剧情/喜剧/爱情
   上映时间          1997-12-20 00:00:00
   时长                            116
   评分                            9.5
   首映地点                          意大利
3  年代                           1994
   产地                             美国
   Unnamed: 0                      3
   名字                           阿甘正传
   投票人数                       580897
   类型                          剧情/爱情
   上映时间          1994-06-23 00:00:00
   时长                            142
   评分                            9.4
   首映地点                        洛杉矶首映
4  年代                           1993
   产地                           中国大陆
   Unnamed: 0                      4
   名字                           霸王别姬
   投票人数                       478523
   类型                       剧情/爱情/同性
   上映时间          1993-01-01 00:00:00
   时长                            171
   评分                            9.4
   首映地点                           香港
dtype: object
data.stack().unstack()
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点
01994美国0肖申克的救赎692795剧情/犯罪1994-09-101429.6多伦多电影节
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-171169.5美国
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-201169.5意大利
31994美国3阿甘正传580897剧情/爱情1994-06-231429.4洛杉矶首映
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-011719.4香港

3.3.2 数据分组、分组运算

GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表

在这里插入图片描述

按照电影产地进行分组

先定义一个分组变量group

group=df.groupby(df['产地'])
group
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000002238D9028B0>

可以计算分组后的各个统计量

group.mean().head()
年代Unnamed: 0投票人数时长评分
产地
中国台湾1999.00970919350.5906158474.86407887.2572827.066667
中国大陆2004.59968420391.79142610898.29379381.4329306.064703
中国香港1991.10031619230.1171528167.44615988.5412146.474114
丹麦1999.09090920415.6111111993.85858688.1010107.245960
俄罗斯1992.53412920061.7534792098.81378493.2809817.310736

计算每年的平均评分

df['评分'].groupby(df['年代']).mean().head()
年代
1888    7.950000
1890    4.800000
1892    7.500000
1894    6.633333
1895    7.575000
Name: 评分, dtype: float64

只会对数值变量进行分组运算

df['年代']=df['年代'].astype('str')
df.groupby(df['产地']).mean().head()
Unnamed: 0投票人数时长评分
产地
中国台湾19350.5906158474.86407887.2572827.066667
中国大陆20391.79142610898.29379381.4329306.064703
中国香港19230.1171528167.44615988.5412146.474114
丹麦20415.6111111993.85858688.1010107.245960
俄罗斯20061.7534792098.81378493.2809817.310736

我们也可以传入多个分组变量

df.groupby([df['产地'],df['年代']]).mean().head()
Unnamed: 0投票人数时长评分
产地年代
中国台湾196314805.0121.000000113.06.4
196530282.0153.666667105.06.8
196626305.051.00000060.07.9
196716605.04444.000000112.08.0
196821282.589.00000083.07.4

获得每个地区,每一年的电影的评分的均值

df['评分'].groupby([df['产地'],df['年代']]).mean()
产地    年代  
中国台湾  1963    6.400000
      1965    6.800000
      1966    7.900000
      1967    8.000000
      1968    7.400000
                ...   
韩国    2012    6.064151
      2013    6.098198
      2014    5.650833
      2015    5.423853
      2016    5.730000
Name: 评分, Length: 1511, dtype: float64

Series通过unstack方法转化为dataframe——会产生缺失值

df['评分'].groupby([df['产地'],df['年代']]).mean().unstack().head()
年代18881890189218941895189618971898189919002008200920102011201220132014201520162017
产地
中国台湾NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN7.4200007.1000007.0538467.2318186.5560987.0764716.5222226.576000NaNNaN
中国大陆NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN6.5897266.5366286.3578315.8246065.7271875.3166674.9637574.9691894.712000NaN
中国香港NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN6.4767866.4425536.2454555.9710536.1105266.1057145.6166675.5891895.390909NaN
丹麦NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN7.0500007.1181827.3625007.0166677.4187506.5555567.1200007.1666677.000000NaN
俄罗斯NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN7.0244686.9227276.9743247.0060006.7841276.8905666.9659577.089655NaNNaN

5 rows × 127 columns

3.3.3 离散化处理

再实际的数据分析项目中,对有的数据属性,我们往往并不关注数据的绝对取值,只关注它所处的区间或等级。
比如我们可以把评分9分及以上定义为A,7-9分为B,5-7分为C,3-5分为D,小于3分的为E。

离散化也可以称为分组、区间化

Pandas为我们提供了方便的函数cut():
pd.cut (x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)
参数:
x:需要离散化的数组、Series、DataFrame对象
bins:分组的依据
right=True:默认包括右端点
include_lowest=False:默认不包括左端点
labels:是否要用标记替换分组
retbins:返回x中对应的bins的列表
precision:精度

df['评分等级']=pd.cut(df['评分'],[0,3,5,7,9,10],labels=['E','D','C','B','A'])
df
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级
01994美国0肖申克的救赎692795剧情/犯罪1994-09-10 00:00:001429.600000多伦多电影节A
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-17 00:00:001169.500000美国A
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-20 00:00:001169.500000意大利A
31994美国3阿甘正传580897剧情/爱情1994-06-23 00:00:001429.400000洛杉矶首映A
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.400000香港A
387251935美国387281935年57喜剧/歌舞1935-03-15 00:00:00987.600000美国B
387261986中国大陆38729血溅画屏95剧情/悬疑/犯罪/武侠/古装1905-06-08 00:00:00917.100000美国B
387271986中国大陆38730魔窟中的幻想51惊悚/恐怖/儿童1905-06-08 00:00:00788.000000美国B
387281977俄罗斯38731列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме…32剧情/战争1905-05-30 00:00:00976.600000美国C
387292017美国38732复仇者联盟3123456剧情/科幻2017-05-04 00:00:001426.935704美国C

38730 rows × 11 columns

根据投票人数来刻画电影的热门
投票人数越多,热门程度越高

使用 np.percentile 进行分位数计算

bins=np.percentile(df['投票人数'],[0,20,40,60,80,100])
df['热门程度']=pd.cut(df['投票人数'],bins,labels=['E','D','C','B','A'])
df
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级热门程度
01994美国0肖申克的救赎692795剧情/犯罪1994-09-10 00:00:001429.600000多伦多电影节AA
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-17 00:00:001169.500000美国AA
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-20 00:00:001169.500000意大利AA
31994美国3阿甘正传580897剧情/爱情1994-06-23 00:00:001429.400000洛杉矶首映AA
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.400000香港AA
387251935美国387281935年57喜剧/歌舞1935-03-15 00:00:00987.600000美国BE
387261986中国大陆38729血溅画屏95剧情/悬疑/犯罪/武侠/古装1905-06-08 00:00:00917.100000美国BD
387271986中国大陆38730魔窟中的幻想51惊悚/恐怖/儿童1905-06-08 00:00:00788.000000美国BE
387281977俄罗斯38731列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме…32剧情/战争1905-05-30 00:00:00976.600000美国CE
387292017美国38732复仇者联盟3123456剧情/科幻2017-05-04 00:00:001426.935704美国CA

38730 rows × 12 columns

查看烂片:投票人数多,评分低

df[(df.热门程度=='A')&(df.评分等级=='E')]
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级热门程度
6552011中国大陆655B区5187剧情/惊悚/恐怖2011-06-03 00:00:00892.3中国大陆EA
43762014中国大陆4376怖偶4867悬疑/惊悚2014-05-07 00:00:00882.8中国大陆EA
54132011中国大陆5413床下有人4309悬疑/惊悚2011-10-14 00:00:001002.8中国大陆EA
68022013中国大陆6802帝国秘符4351动作/冒险2013-09-18 00:00:00933.0中国大陆EA
82322011中国大陆8232飞天4764剧情2011-07-01 00:00:001152.9中国大陆EA
84062014中国大陆8406分手达人3937喜剧/爱情2014-06-06 00:00:00902.7中国大陆EA
96012012中国大陆9601孤岛惊魂2982悬疑/惊悚/恐怖2013-01-26 00:00:00932.8中国大陆EA
105132013中国大陆10513海天盛宴·韦口3788情色2013-10-12 00:00:00882.9网络EA
167992013中国大陆16799孪生密码6390动作/悬疑2013-11-08 00:00:00962.9中国大陆EA
215332010日本21536拳皇6329动作/科幻/冒险2012-10-12 00:00:00933.0中国大陆EA
227052013中国大陆22708闪魂3119惊悚/犯罪2014-02-21 00:00:00942.6中国大陆EA
228832015中国大陆22886少年毛泽东3058动画/儿童/冒险2015-04-30 00:00:00762.4中国大陆EA
241282013英国24131史前怪兽3543动作/惊悚/冒险2014-01-01 00:00:00893.0中国大陆EA
282612011中国大陆28264无极限之危情速递6319喜剧/动作/爱情/冒险2011-08-12 00:00:00942.8中国大陆EA
320982010中国大陆32101异度公寓3639惊悚2010-06-04 00:00:00932.7中国大陆EA
324912014中国大陆32494英雄之战8359动作/爱情2014-03-21 00:00:00903.0中国大陆EA
326642013中国大陆32667咏春小龙8861剧情/动作2013-07-20 00:00:00903.0中国大陆EA
334882014中国大陆33491再爱一次好不好6999喜剧/爱情2014-04-11 00:00:00943.0中国大陆EA
386572014中国大陆38660大话天仙21629喜剧/奇幻/古装2014-02-02 00:00:00913.0中国大陆EA
386592013中国大陆38662天机·富春山居图74709动作/冒险2013-06-09 00:00:001222.9中国大陆EA
386602014中国大陆38663特工艾米拉10852动作/悬疑2014-04-11 00:00:00962.7中国大陆EA
386642015中国大陆38667汽车人总动员12892喜剧/动画/冒险2015-07-03 00:00:00852.3中国大陆EA
386692016中国大陆386722016年中央电视台春节17328歌舞/真人秀2016-02-07 00:00:002802.3中国大陆EA
386752014中国大陆38678放手爱29254喜剧/爱情2014-04-30 00:00:00932.3中国大陆EA

冷门高分电影

df[(df.热门程度=='E')&(df.评分等级=='A')]
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级热门程度
4562015美国456未知电影45音乐2015-12-14 00:00:00609.3美国AE
5872011英国587BBC喜剧音38喜剧/音乐/歌舞2011-08-13 00:00:00959.3美国AE
6422003美国642未知电影38纪录片/音乐2003-02-03 00:00:00559.2美国AE
6862014英国686未知电影63音乐/舞台艺术2014-05-18 00:00:00499.5美国AE
6982008英国698未知电影52纪录片2008-07-25 00:00:00409.8美国AE
375791986英国37582歌唱神探36剧情/悬疑/歌舞1986-11-16 00:00:004159.1美国AE
377051972美国37708未知电影56纪录片1972-12-23 00:00:00709.3美国AE
381111975美国38114山那边70剧情1975-11-14 00:00:001039.1美国AE
384442015美国3844762纪录片/短片2015-08-19 00:00:0099.1纽约电影论坛AE
385002007英国38503未知电影41纪录片/短片1905-06-29 00:00:00579.2美国AE

245 rows × 12 columns

将处理的数据保存

df.to_excel('movies_data3.xlsx')

3.3.4 合并数据集

(1)append

先把数据集拆分为多个,再进行合并

df_usa=df[df.产地=='美国']
df_cn=df[df.产地=='中国大陆']
df_cn.append(df_usa)
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级热门程度
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.400000香港AA
211961中国大陆21大闹天宫74881动画/奇幻1905-05-14 00:00:001149.200000上集AA
292015中国大陆29穹顶之下51113纪录片2015-02-28 00:00:001049.200000中国大陆AA
381982中国大陆38茶馆10678剧情/历史1905-06-04 00:00:001189.200000美国AA
451988中国大陆45山水情10781动画/短片1905-06-10 00:00:00199.200000美国AA
387181987美国38721零下的激情199剧情/爱情/犯罪1987-11-06 00:00:00987.400000美国BD
387201986美国38723离别秋波240剧情/爱情/音乐1986-02-19 00:00:00908.200000美国BC
387231986美国38726极乐森林45纪录片1986-09-14 00:00:00908.100000美国BE
387251935美国387281935年57喜剧/歌舞1935-03-15 00:00:00987.600000美国BE
387292017美国38732复仇者联盟3123456剧情/科幻2017-05-04 00:00:001426.935704美国CA

15781 rows × 12 columns

(2)merge

pd.merge(left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=(‘_x’,‘_y’), copy=True, indicator=False)

left:对象
right:另一个对象
on:要加入的列。必须在左、右综合对象中找到。如果不能通过,left_index和right_index是假,将推断DataFrame中的列的交叉点为连接键
left_on:从左边的综合使用作为键列。可以是列名或数组的长度等于长度综合。
right_on:从右边的综合使用作为键列。可以是列名或数组的长度等于长度综合。
left_index:如果为True,则使用索引(行标签)从左综合作为其连接键。在与多重(层次)的综合,级别数必须匹配连接键从右综合的数目。
right_index:先沟通用法作为正确综合left_index。
how:之一‘左’,‘右’,‘外在’,‘内部’。默认为内联。
sort:综合通过连接键按字典顺序对结果进行排序。默认为True,设置为False在大多数情况下将提高性能。
suffixes:字符串后缀并不适用于重叠列的元组。默认为(‘_x’,‘_y’)
copy:即使重新索引是不必要总是从传递的综合对象,赋值的数据(默认为True)。在许多情况下不能避免,但可能会提高性能/内存使用情况,可以避免赋值上述案件有些病理,但尽管如此提供此选项。
indicator:将列添加到输出综合呼吁_merge与信息源的每一行。_merge是绝对类型,并对观测其合并键只出现在‘左’的综合,关策其合并键只会出现在‘正确’的综合,和两个如果观测合并关键发现在两个 right_only left_only 的值。

选取6部热门电影进行操作

df1=df.loc[:5]
df1
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级热门程度
01994美国0肖申克的救赎692795剧情/犯罪1994-09-10 00:00:001429.6多伦多电影节AA
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-17 00:00:001169.5美国AA
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-20 00:00:001169.5意大利AA
31994美国3阿甘正传580897剧情/爱情1994-06-23 00:00:001429.4洛杉矶首映AA
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.4香港AA
52012美国5泰坦尼克号157074剧情/爱情/灾难2012-04-10 00:00:001949.4中国大陆AA
df2=df.loc[:5][['名字','产地']]
df2['票房']=[111,222,333,444,555,666]
df2
名字产地票房
0肖申克的救赎美国111
1控方证人美国222
2美丽人生意大利333
3阿甘正传美国444
4霸王别姬中国大陆555
5泰坦尼克号美国666
##打乱样本
df2=df2.sample(frac=1)
df2
名字产地票房
0肖申克的救赎美国111
5泰坦尼克号美国666
4霸王别姬中国大陆555
2美丽人生意大利333
1控方证人美国222
3阿甘正传美国444
## 重新设置索引
df2.index=range(len(df2))
df2
名字产地票房
0肖申克的救赎美国111
1泰坦尼克号美国666
2霸王别姬中国大陆555
3美丽人生意大利333
4控方证人美国222
5阿甘正传美国444

对df1和df2进行合并

pd.merge(df1,df2,how='inner',on='名字')
年代产地_xUnnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级热门程度产地_y票房
01994美国0肖申克的救赎692795剧情/犯罪1994-09-10 00:00:001429.6多伦多电影节AA美国111
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-17 00:00:001169.5美国AA美国222
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-20 00:00:001169.5意大利AA意大利333
31994美国3阿甘正传580897剧情/爱情1994-06-23 00:00:001429.4洛杉矶首映AA美国444
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.4香港AA中国大陆555
52012美国5泰坦尼克号157074剧情/爱情/灾难2012-04-10 00:00:001949.4中国大陆AA美国666

两个样本都有 产地 列,所以会有两个产地列

(3)concat

将多个数据集进行批量合并

df1=df[:5]
df2=df[100:105]
df3=df[200:205]
print(df1)
print(df2)
print(df3)


     年代    产地  Unnamed: 0      名字    投票人数        类型                 上映时间   时长  \
0  1994    美国           0  肖申克的救赎  692795     剧情/犯罪  1994-09-10 00:00:00  142   
1  1957    美国           1    控方证人   42995  剧情/悬疑/犯罪  1957-12-17 00:00:00  116   
2  1997   意大利           2   美丽人生   327855  剧情/喜剧/爱情  1997-12-20 00:00:00  116   
3  1994    美国           3    阿甘正传  580897     剧情/爱情  1994-06-23 00:00:00  142   
4  1993  中国大陆           4    霸王别姬  478523  剧情/爱情/同性  1993-01-01 00:00:00  171   

    评分    首映地点 评分等级 热门程度  
0  9.6  多伦多电影节    A    A  
1  9.5      美国    A    A  
2  9.5     意大利    A    A  
3  9.4   洛杉矶首映    A    A  
4  9.4      香港    A    A  
       年代  产地  Unnamed: 0          名字    投票人数        类型                 上映时间  \
100  1993  韩国         100         101     146     喜剧/爱情  1993-06-19 00:00:00   
101  1995  英国         101          10     186        喜剧  1995-01-25 00:00:00   
102  2013  韩国         102          素媛  114819     剧情/家庭  2013-10-02 00:00:00   
103  2003  美国         103  101忠狗续集:伦敦     924  喜剧/动画/家庭  2003-01-21 00:00:00   
104  2000  美国         104          10    9514     喜剧/家庭  2000-09-22 00:00:00   

      时长   评分 首映地点 评分等级 热门程度  
100  112  7.4   韩国    B    D  
101  101  7.4   美国    B    D  
102  123  9.1   韩国    A    A  
103   70  7.5   美国    B    B  
104  100  7.0   美国    C    A  
       年代    产地  Unnamed: 0              名字   投票人数        类型  \
200  2014    日本         200  最完美的离婚 2014特别篇  18478  剧情/喜剧/爱情   
201  2009    日本         201          2001夜物     84     剧情/动画   
202  2009  中国香港         202            头七 頭   7039        恐怖   
203  1896    法国         203          火车进站 L   7001    纪录片/短片   
204  2009    美国         204            银行舞蹈   6944        短片   

                    上映时间   时长   评分 首映地点 评分等级 热门程度  
200  2014-02-08 00:00:00  120  9.1   日本    A    A  
201  2009-10-02 00:00:00   80  6.6   美国    C    D  
202  2009-05-21 00:00:00   60  6.2   美国    C    A  
203           1896-01-06   60  8.8   法国    B    A  
204  1905-07-01 00:00:00   60  7.8   美国    B    A  
dff=pd.concat([df1,df2,df3],axis=0) ##默认axis=0 增加行数,axis=1增加列数
dff
年代产地Unnamed: 0名字投票人数类型上映时间时长评分首映地点评分等级热门程度
01994美国0肖申克的救赎692795剧情/犯罪1994-09-10 00:00:001429.6多伦多电影节AA
11957美国1控方证人42995剧情/悬疑/犯罪1957-12-17 00:00:001169.5美国AA
21997意大利2美丽人生327855剧情/喜剧/爱情1997-12-20 00:00:001169.5意大利AA
31994美国3阿甘正传580897剧情/爱情1994-06-23 00:00:001429.4洛杉矶首映AA
41993中国大陆4霸王别姬478523剧情/爱情/同性1993-01-01 00:00:001719.4香港AA
1001993韩国100101146喜剧/爱情1993-06-19 00:00:001127.4韩国BD
1011995英国10110186喜剧1995-01-25 00:00:001017.4美国BD
1022013韩国102素媛114819剧情/家庭2013-10-02 00:00:001239.1韩国AA
1032003美国103101忠狗续集:伦敦924喜剧/动画/家庭2003-01-21 00:00:00707.5美国BB
1042000美国104109514喜剧/家庭2000-09-22 00:00:001007.0美国CA
2002014日本200最完美的离婚 2014特别篇18478剧情/喜剧/爱情2014-02-08 00:00:001209.1日本AA
2012009日本2012001夜物84剧情/动画2009-10-02 00:00:00806.6美国CD
2022009中国香港202头七 頭7039恐怖2009-05-21 00:00:00606.2美国CA
2031896法国203火车进站 L7001纪录片/短片1896-01-06608.8法国BA
2042009美国204银行舞蹈6944短片1905-07-01 00:00:00607.8美国BA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用langchain打造自己的大型语言模型(LLMs)

我们知道Openai的聊天机器人可以回答用户提出的绝大多数问题,它几乎无所不知&#xff0c;无所不能&#xff0c;但是由于有机器人所学习到的是截止到2021年9月以前的知识&#xff0c;所以当用户询问机器人关于2021年9月以后发送的事情时&#xff0c;它无法给出正确的答案&#x…

【Java 21 新特性 】顺序集合(Sequenced Collections)

Java 21 中增加了一种新的集合类型&#xff1a;顺序集合&#xff08;Sequenced Collections&#xff09;。要介绍顺序集合&#xff0c;就首先要说明一下出现顺序&#xff08;encounter order&#xff09;。出现顺序指的是在遍历一个集合时&#xff0c;集合中元素的出现顺序。有…

Redis高频40问

Redis连环40问&#xff0c;绝对够全&#xff01; Redis是什么&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个使用 C 语言编写的&#xff0c;高性能非关系型的键值对数据库。与传统数据库不同的是&#xff0c;Redis 的数据是存在内存中的&#xf…

Python:每日一题之《全排列的价值》真题练习

问题描述 对于一个排列 A(a1​,a2​,⋯,an​), 定义价值 ci​ 为 a1​ 至 ai−1​ 中小于 ai​ 的数 的个数, 即 。 ci​∣{aj​∣j<i,aj​<ai​}∣。 ​ 定义 A 的价值为 ∑i1n​ci​ 。 给定 n, 求 1 至 n 的全排列中所有排列的价值之和。 输入格式 输入一行包含…

SpringBoot(五) Docker

一、简介 Docker是一个开源的应用容器引擎&#xff1b; Docker支持将软件编译成一个镜像&#xff1b;然后在镜像中各种软件做好配置&#xff0c;将镜像发布出去&#xff0c;其他使用者可以直接使用这个镜像。 运行中的这个镜像称为容器&#xff0c;容器启动是非常快速的。类似…

HTB-soccer

信息收集 22 ssh80 http9091 对80进行检查。 搜索得知存在默认登陆密码admin:admin123 和 user:12345。 右上角有一个upload&#xff0c;试试能不能本地上传。 能够获取上传的路径&#xff0c;但是此文件没有写入权限。 切换到tiny文件夹再次上传。 在/tiny/uploads能够…

文心一言,被网友玩坏了哈哈哈哈哈哈哈

现在人工智能正火&#xff0c;百度“文心一言”出来&#xff0c;虽然只是小范围测试&#xff0c;但已经被玩坏了&#xff01;这应该算是卖全羊送狗肉娃娃…菜…也没毛病哈看来对美女还有些误解虎头虎脑的胖大胖小子哈哈哈哈哈鸳鸯和锅都有&#xff0c;还不满意吗什么奇行种似乎…

数据结构和算法(3):递归

目录概述单路递归 Single Recursion多路递归 Multi Recursion递归优化-记忆法递归时间复杂度-Master theorem递归时间复杂度-展开求解概述 定义 计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集 In computer scien…

情感语音转换学习

情感语音转换&#xff08;Emotional Voice conversion&#xff09; 言语不仅仅是词汇&#xff0c;它承载着说话者的情感。之前的研究(Mehrabian和Wiener, 1967)表明&#xff0c;在交流情感和态度时&#xff0c;口头语言只传达了7%的信息&#xff0c;非语言的声音属性(38%)和面…

简单研究一下 OpenAI 的官方文档

文档地址&#xff1a;https://platform.openai.com/docs/ 接口说明&#xff1a;https://platform.openai.com/docs/api-reference 一、概览 OpenAI API 可直接调用模型接口&#xff0c;也可在线微调&#xff08;不过只能微调GPT-3系列模型&#xff09;。 本小节主要介绍 toke…

定长内存池的实现

文章目录 什么是内存池 池化技术内存池内存池主要解决的问题malloc定长内存池的实现前言 当前项目是实现一个高并发的内存池&#xff0c;他的原型是Google的一个开源项目tcmalloc&#xff0c;tcmalloc全称Thread-Caching Malloc&#xff0c;即线程缓存的malloc&#xff0c;实现…

python用户价值分析

数据获取&#xff1a; 表格数据 数据清洗后数据&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1D7qOZqKmF3YR3meQPsp3sQ 提取码&#xff1a;1234 数据下载下来后&#xff0c;先进行数据清洗。数据清洗在进行用户价值分析,也可以直接下载我清洗后的数据。 RFM模型&a…

springcloud微服务架构搭建过程

项目地址&#xff1a;源代码 仅作为学习用例使用&#xff0c;是我开发过程中的总结、实际的一部分使用方式 开发环境&#xff1a; jdk11 springboot2.7.6 springcloud2021.0.5 alibabacloud 2021.0.4.0 redis6.0 mysql8.0 一、项目搭建 wdz-api&#xff1a;存放远程服务调用相关…

如何选电脑

1、CPU&#xff08;中央处理器&#xff09; 怎么看CPU型号&#xff1a;CPU:系列-代数等级核心显卡型号电压后缀 例如CPU:i7-10750H &#xff1a; 1、系列&#xff1a;Intel的酷睿i3、i5、i7、i9这四个系列的CPU&#xff0c;数字越大就代表越高端。 2、代数&#xff1a;代表…

自主HttpServer实现(C++实战项目)

文章目录项目介绍CGI技术概念原理设计框架日志文件TCPServer任务类初始化与启动HttpServerHTTP请求结构HTTP响应结构线程回调EndPoint类EndPoint主体框架读取HTTP请求处理HTTP请求CGI处理非CGI处理构建HTTP响应发送HTTP响应接入线程池简单测试项目扩展项目介绍 该项目是一个基…

大厂光环下的功能测试,出去面试自动化一问三不知

在一家公司待久了技术能力反而变弱了&#xff0c;原来的许多知识都会慢慢遗忘&#xff0c;这种情况并不少见。 一个京东员工发帖吐槽&#xff1a;感觉在大厂快待废了&#xff0c;出去面试问自己接口环境搭建、pytest测试框架&#xff0c;自己做点工太久都忘记了。平时用的时候…

无公网IP,SSH远程连接Linux CentOS服务器【内网穿透】

文章目录视频教程1. Linux CentOS安装cpolar2. 创建TCP隧道3. 随机地址公网远程连接4. 固定TCP地址5. 使用固定公网TCP地址SSH远程本次教程我们来实现如何在外公网环境下&#xff0c;SSH远程连接家里/公司的Linux CentOS服务器&#xff0c;无需公网IP&#xff0c;也不需要设置路…

地表最强,接口调试神器Postman ,写得太好了

postman是一款支持http协议的接口调试与测试工具&#xff0c;其主要特点就是功能强大&#xff0c;使用简单且易用性好 。 无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;postman都是我们的首选工具之一 。 那么接下来就介绍下postman到底有哪些功…

吉林省互联网医院资质申请条件|牌照申请

吉林省互联网医院资质申请条件|牌照申请|长春市|四平市|辽源市|通化市|白山市|松原市|白城市|延边朝鲜族自治州 吉林省互联网医院资质申请条件   一、《医疗机构管理条例》第十六条申请医疗机构执业登记&#xff0c;应具备下列条件&#xff1a;   1.有设置医疗机构批准书&a…

论文笔记 | 标准误聚类问题

关于标准误的选择&#xff0c;如是否选择稳健性标准误、是否采取聚类标准误。之前一直是困惑的&#xff0c;惯用的做法是类似主题的文献做法。所以这一次&#xff0c;借计量经济学课程之故&#xff0c;较深入学习了标准误的选择问题。 在开始之前推荐一个知乎博主。他阅读了很…