首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除列名为浮动的列。

移除列名为浮动的列。
EN

Stack Overflow用户
提问于 2022-05-23 13:19:48
回答 3查看 69关注 0票数 0

我有以下数据:

代码语言:javascript
复制
import pandas as pd

url_cities="https://population.un.org/wup/Download/Files/WUP2018-F12-Cities_Over_300K.xls"
df_cities = pd.read_excel(url_cities)

i = df_cities.iloc[:, 1].notna().idxmax()                  
df_cities.columns = df_cities.iloc[i].tolist()
df_cities = df_cities.iloc[i+1:]
df_cities = df_cities.rename(columns={2020.0: 'City_pop'})  
print(df_cities.iloc[0:20,])

我希望删除列名(而不是列值)是浮动的所有列。

我看过几个链接(ABC),但是我找不到答案。有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-05-23 13:38:54

这将满足你的问题要求:

代码语言:javascript
复制
df = df[[col for col in df.columns if not isinstance(col, float)]]

示例:

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame(columns=['a',1.1,'b',2.2,3,True,4.4,'c'],data=[[1,2,3,4,5,6,7,8],[11,12,13,14,15,16,17,18]])
print(df)
df = df[[col for col in df.columns if not isinstance(col, float)]]
print(df)

初步数据:

代码语言:javascript
复制
    a  1.1   b  2.2   3  True  4.4   c
0   1    2   3    4   5     6    7   8
1  11   12  13   14  15    16   17  18

结果:

代码语言:javascript
复制
    a   b   3  True   c
0   1   3   5     6   8
1  11  13  15    16  18

请注意,3是一个int,而不是浮点数,因此它的列没有被删除。

票数 3
EN

Stack Overflow用户

发布于 2022-05-23 13:32:15

代码语言:javascript
复制
my_list=list(df_cities.columns)
for i in my_list:
    if type(i)!=str:
        df_cities=df_cities.drop(columns=[i],axis=1)

拜托,试试这段代码

票数 1
EN

Stack Overflow用户

发布于 2022-05-23 13:43:26

我认为您的基本问题是调用excel文件。

如果跳过早期的行并定义索引correctly6,则可以避免必须完全删除浮点列标题的问题。因此,请将调用更改为打开excel文件如下:

代码语言:javascript
复制
df_cities = pd.read_excel(url_cities, skiprows=16, index_col=0)

它产生如下所示的df:

代码语言:javascript
复制
    Country Code    Country or area City Code   Urban Agglomeration Note    Latitude    Longitude   1950    1955    1960    ... 1990    1995    2000    2005    2010    2015    2020    2025    2030    2035
Index                                                                                   
1   4   Afghanistan 20001   Herat   NaN 34.348170   62.199670   82.468  85.751  89.166  ... 183.465 207.190 233.991 275.678 358.691 466.703 605.575 752.910 897.041 1057.573
2   4   Afghanistan 20002   Kabul   NaN 34.528887   69.172460   170.784 220.749 285.352 ... 1549.320    1928.694    2401.109    2905.178    3289.005    3723.543    4221.532    4877.024    5737.138    6760.500
3   4   Afghanistan 20003   Kandahar    NaN 31.613320   65.710130   82.199  89.785  98.074  ... 233.243 263.395 297.456 336.746 383.498 436.741 498.002 577.128 679.278 800.461
4   4   Afghanistan 20004   Mazar-e Sharif  NaN 36.709040   67.110870   30.000  37.139  45.979  ... 135.153 152.629 172.372 206.403 283.532 389.483 532.689 681.531 816.040 962.262
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72349285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档