pandas表格大小?代碼源數據:Sheet3name,我來為大家科普一下關于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)
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!