<p>您需要:</p>
<pre><code>GUL_EP_GSM=GUL_EP_GSM.astpye(float)
GUL_EP_UMTS=GUL_EP_UMTS.astpye(float)
GUL_EP_LTE=GUL_EP_LTE.astpye(float)
#appended_cell_name['CELLNAME']=appended_cell_name['CELLNAME'].astype(int) #or convert appended_cell_name to int
</code></pre>
<p><strong>因为附加的单元格名称['CELLNAME']的类型是float</strong></p>
<p>那么你的代码是:</p>
<pre><code>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.astpye(float)
GUL_EP_UMTS=GUL_EP_UMTS.astpye(float)
GUL_EP_LTE=GUL_EP_LTE.astpye(float)
#print dataframes astype float
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)
</code></pre>
<hr/>
<p>你有三个数据帧叫做:GUL\u EP\u GSM,GUL\u EP\u UMTS,GUL\u EP\u LTE。那你需要和<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.isin.html" rel="nofollow noreferrer">Series.isin</a>核对一下
如果附加的单元格名称数据框的单元格名称列中的值位于每个数据框的列中,则相应地填写系统列。你知道吗</p>
<p>唯一需要更改我的解决方案的是每个示例中列的标签:</p>
<p><code>GUL_EP_GSM['name_of_colum_in_your data']</code>而不是</p>
<pre><code>GUL_EP_GSM ['GUL_EP_GSM']
</code></pre>
<hr/>
<p>使用<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.select.html" rel="nofollow noreferrer">np.select</a>+<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.isin.html" rel="nofollow noreferrer">Series.isin</a>:</p>
<p><strong>准备数据</p>
<pre><code>GUL_EP_GSM=pd.DataFrame({'CELLNAME':[53119,53120,53121,54438,54439,54440,55976,55977,55978]})
GUL_EP_UMTS=pd.DataFrame({'CELLNAME':[41773,41774,41775,44620,44621,44622]})
GUL_EP_LTE=pd.DataFrame({'GELLNAME':[2303909,2303923,2303924]})
appended_cell_name=pd.DataFrame({'CELLNAME':[53119,53120,53121,54438,54439,54440,55976,55977,55978,41773,41774,41775,44620,44621,44622,2303909,2303923,2303924]})
</code></pre>
<hr/>
<p><strong>创建遮罩</p>
<pre><code>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'])
</code></pre>
<blockquote>
<p>Solve with <a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.select.html" rel="nofollow noreferrer">np.select</a></p>
</blockquote>
<p>然后应用<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.select.html" rel="nofollow noreferrer">np.select</a>:</p>
<pre><code>cond=[mask1,mask2,mask3]
values=['GSM','UMTS','LTE']
appended_cell_name['system']=np.select(cond,values)
print(appended_cell_name)
</code></pre>
<hr/>
<blockquote>
<p>Also you can use <a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.mask.html" rel="nofollow noreferrer">Series.mask</a>(This is other solution):</p>
</blockquote>
<pre><code>appended_cell_name['system']= ( appended_cell_name['CELLNAME'].mask(mask1,'GSM')
.mask(mask2,'UMTS')
.mask(mask3,'LTE') )
print(appended_cell_name)
</code></pre>
<hr/>
<p><strong>输出:</strong></p>
<pre><code> CELLNAME system
0 53119 GSM
1 53120 GSM
2 53121 GSM
3 54438 GSM
4 54439 GSM
5 54440 GSM
6 55976 GSM
7 55977 GSM
8 55978 GSM
9 41773 UMTS
10 41774 UMTS
11 41775 UMTS
12 44620 UMTS
13 44621 UMTS
14 44622 UMTS
15 2303909 LTE
16 2303923 LTE
17 2303924 LTE
</code></pre>
<p><strong>使用的数据帧:</strong></p>
<pre><code>print(GUL_EP_GSM)
GUL_EP_GSM
0 53119
1 53120
2 53121
3 54438
4 54439
5 54440
6 55976
7 55977
8 55978
</code></pre>
<hr/>
<pre><code>print(GUL_EP_UMTS)
CELLNAME
0 41773
1 41774
2 41775
3 44620
4 44621
5 44622
</code></pre>
<hr/>
<pre><code>print(GUL_EP_LTE)
CELLNAME
0 2303909
1 2303923
2 2303924
</code></pre>