pandas表格大小(pandas第16课时联立表格merge)

代码源数据:Sheet3name,我来为大家科普一下关于pandas表格大小?下面希望有你要的答案,我们一起来看看吧!

pandas表格大小(pandas第16课时联立表格merge)

pandas表格大小

代码源数据:Sheet3

name

num

A001

10

B002

20

c003

30

A002

212

B003

50

c004

60

A003

70

B004

80

c005

333

A004

100

B005

111

c006

120

A005

110

B006

140

c007

150

A006

160

代码源数据:Sheet2

name

price

A001

1

B002

2

c003

3

A002

4

B003

5

c004

6

A003

7

B004

8

c005

9

A004

10

B005

11

c006

12

一、将Sheet3和Sheet2基于‘name’列,将相同的数据合并,使用merge

import pandas as pd num = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet3') price = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet2') # sheet_name=' '表示读取表格里某个单元格的数据 table = num.merge(price, on='name') # on='name'表示基于‘name’列合并 print(table)

二、将Sheet3和Sheet2基于‘name’列,将相同的数据合并,但是保留Sheet3的所有数据,在Sheet2找不到的数据设置为0

import pandas as pd num = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet3') price = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet2') table = num.merge(price, how='left', on = 'name').fillna(0) # 因为num数据在左边, how='left'表示保留左边表格的数据,fillna(0)表示将NaN设为0,默认是浮点数 print(table)

无fillna(0)

有fillna(0)

三、将price浮点数改为整数

import pandas as pd num = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet3') price = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet2') table = num.merge(price, how = 'left', on = 'name').fillna(0) table.price = table.price.astype(int) # 将price浮点数改为整数 print(table)

四、若两张表没有相同的列名,如何合并?

import pandas as pd num = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet3') price = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet2') table = num.merge(price, how ='left', left_on='Sheet3的列名', right_on='Sheet2的列名').fillna(0) table.price = table.price.astype(int) print(table) #或者可以通过读取数据的时候设置index_col=' ',用left_on=num.index, right_on=price.index来合并表格

五、使用join函数合并数据,方法和merge相似,区别在于

1.join后面不能加left_on,right_on;2.join无需加on可自动通过index合并

import pandas as pd num = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet3', index_col='name') price = pd.read_excel('文件路径/文件名.文件格式', sheet_name='Sheet2', index_col='name') # 使用join合并时,一定要加index_col=' ' table = num.join(price,how='left').fillna(0) # 或者table = num.join(price,how='left', on='name').fillna(0) table.price=table.price.astype(int) print(table)

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页