首先,我有一个名为Cluster_Cell.xlsx
的主excel文件,我需要从另一个名为GU EP20191016171519.xlsx
的excel文件中填充它。它包含3个主工作表,我想从中复制数据。这些工作表名为GSM_CDDData
、UMTS_CDDData
和UMTS_CDDData
来自名为CELLNAME
的列,这个列名对于我所有的excel文件来说都是静态的
现在,这是将名为CELLNAME的列中的数据复制到master sheet Cluster_Cell.xlsx的部分,因此master sheet也有一个名为system的列,我还需要填充与这三张表相关的数据。例如,我有三张表,分别命名为GSM_Cddata、UMTS_Cddata和LTE_Cddata。。。。。因此,现在我需要将行填充为与工作表GSM_CDDData中CELLNAME列中的行相关的值,需要将行填充为与工作表名称(称为UMTS_CDDData)相关的值UMTS,还需要将行填充为与工作表名称(称为LTE_CDDData)相关的值UMTS
这是我的密码
import os
import pandas as pd
import numpy as np
mydir = (os.getcwd()).replace('\\', '/') + '/'
cluster_cell = pd.read_excel(r'' + mydir + 'Cluster_Cell.xlsx', usecols=['CELLNAME'], encoding='latin-1')
GUL_EP_GSM = pd.read_excel(r'' + mydir + 'GU EP20191016171519.xlsx', sheet_name="GSM_CDDData", usecols=['CELLNAME'],
encoding='latin-1')
GUL_EP_UMTS = pd.read_excel(r'' + mydir + 'GU EP20191016171519.xlsx', sheet_name="UMTS_CDDData", usecols=['CELLNAME'],
encoding='latin-1')
GUL_EP_LTE = pd.read_excel(r'' + mydir + 'GU EP20191016171519.xlsx', sheet_name="LTE_CDDData", usecols=['CELLNAME'],
encoding='latin-1')
#converting to float
GUL_EP_GSM=GUL_EP_GSM.astype(int)
GUL_EP_UMTS=GUL_EP_UMTS.astype(int)
GUL_EP_LTE=GUL_EP_LTE.astype(int)
#print dataframes astype float
print(cluster_cell)
print(GUL_EP_GSM)
print(GUL_EP_UMTS)
print(GUL_EP_LTE)
#creating appended_cell_name dataframe
appended_cell_name = pd.DataFrame({'CELLNAME': cluster_cell['CELLNAME'] & GUL_EP_GSM['CELLNAME'] & GUL_EP_UMTS['CELLNAME'] & GUL_EP_LTE['CELLNAME']})
#creating mask with isin
mask1 = appended_cell_name['CELLNAME'].isin(GUL_EP_GSM['CELLNAME'])
mask2 = appended_cell_name['CELLNAME'].isin(GUL_EP_UMTS['CELLNAME'])
mask3 = appended_cell_name['CELLNAME'].isin(GUL_EP_LTE['CELLNAME'])
#using np.select
cond=[mask1,mask2,mask3]
values=['GSM','UMTS','LTE']
appended_cell_name['system']=np.select(cond,values)
#print appended_cell_name
print(appended_cell_name)
#save in excell
appended_cell_name.to_excel("Cluser_Cell_Final.xlsx", index=False)
以及
print(cluster_cell)
print(GUL_EP_GSM)
print(GUL_EP_UMTS)
print(GUL_EP_LTE)
CELLNAME
0 10709
1 10710
2 10711
3 11340
4 11341
... ...
2347 2304376
2348 2304377
2349 2205890
2350 2205891
2351 2205892
[2352 rows x 1 columns]
CELLNAME
0 10169
1 10170
2 10171
3 10349
4 10350
.. ...
124 54237
125 54996
126 54997
127 54998
128 55966
[129 rows x 1 columns]
CELLNAME
0 1106382
1 1106383
2 1106384
3 1019810
4 1019811
.. ...
262 1102891
263 1102892
264 1018393
265 1018394
266 1018395
[267 rows x 1 columns]
CELLNAME
0 2002388
1 2002389
2 2002390
3 2100118
4 2100119
.. ...
538 2304376
539 2304377
540 2205890
541 2205891
542 2205892
以及
print(appended_cell_name)
CELLNAME system
0 True 0
1 False 0
2 True 0
3 False 0
4 True 0
... ... ...
2347 False 0
2348 False 0
2349 False 0
2350 False 0
2351 False 0
[2352 rows x 2 columns]
所以我对appended_cell_name
的期望值
是
CELLNAME system
0 10709 GSM
1 10710 GSM
2 10711 GSM
3 11340 GSM
4 11341 GSM
... ... ...
2347 2304376 LTE
2348 2304377 LTE
2349 2205890 LTE
2350 2205891 LTE
2351 2205892 LTE
因此,主要思想是将所有需要的数据从所有4dataframe
获取到一个名为Cluser_Cell_Final.xlsx
的excel文件中
目前没有回答
相关问题 更多 >
编程相关推荐