首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将“未命名”列名更改为顶部行中的单词

如何将“未命名”列名更改为顶部行中的单词
EN

Stack Overflow用户
提问于 2020-05-13 01:00:46
回答 1查看 321关注 0票数 0
代码语言:javascript
复制
import pandas as pd
import numpy as np

data = {'Type_of_Institution': [np.nan, 'Institution of Nation Importance', 'Institution of Nation Importance', 'Institution of Nation Importance', 'Private Stand Alone'],
        'City': [np.nan, 'Bangalore', 'Kozhikode', 'Mumbai', 'Navi Mumbai'],
        'State': [np.nan, 'Karnataka', 'Kerala', 'Maharashtra', 'Maharashtra'],
        'Percent_Placed': [np.nan, 100.0, 89.0, 99.0, 75.0],
        'Percent_Placed_Sector': ['MNC', 50, 30, 40, 10],
        'Unnamed: 6': ['FMCG', np.nan, 20, 20, 20],
        'Unnamed: 7': ['Fintech', np.nan, 10, 10, 20],
        'Unnamed: 8': ['Consultancy', 40, 10, 20, 10],
        'Unnamed: 9': ['Financial', 10, 20, 10, 20],
        'Unnamed: 10': ['Technology', np.nan, 10, np.nan, 10],
        'Unnamed: 11': ['Others', np.nan, np.nan, np.nan, 10],
        'Salary': ['Average',  6.11, 5.46, 5.82, 3.6],
        'Unnamed: 13': ['Median', 6, 5, 5.96, 2.8],
        'Unnamed: 14': ['Max', 16, 15.2, 14, 14],
        'Unnamed: 15': ['Min', 3.4, 2.5, 2.84, 1.8]}


df = pd.DataFrame(data)

                Type_of_Institution         City        State  Percent_Placed Percent_Placed_Sector Unnamed: 6 Unnamed: 7   Unnamed: 8 Unnamed: 9 Unnamed: 10 Unnamed: 11   Salary Unnamed: 13 Unnamed: 14 Unnamed: 15
0                               NaN          NaN          NaN             NaN                   MNC       FMCG    Fintech  Consultancy  Financial  Technology      Others  Average      Median         Max         Min
1  Institution of Nation Importance    Bangalore    Karnataka           100.0                    50        NaN        NaN           40         10         NaN         NaN     6.11           6          16         3.4
2  Institution of Nation Importance    Kozhikode       Kerala            89.0                    30         20         10           10         20          10         NaN     5.46           5        15.2         2.5
3  Institution of Nation Importance       Mumbai  Maharashtra            99.0                    40         20         10           20         10         NaN         NaN     5.82        5.96          14        2.84
4               Private Stand Alone  Navi Mumbai  Maharashtra            75.0                    10         20         20           10         20          10          10      3.6         2.8          14         1.8

这些数据,我相信循环可以用来做改变,我试图创建一个循环,但它抛出了很多错误。上面是数据帧的图像。

期望输出

代码语言:javascript
复制
                Type_of_Institution         City        State  Percent_Placed Percent_Placed_Sector  FMCG  Fintech  Consultancy  Financial  Technology  Others   Salary  Median   Max   Min
0                               NaN          NaN          NaN             NaN                   MNC  FMCG  Fintech  Consultancy  Financial  Technology  Others  Average  Median   Max   Min
1  Institution of Nation Importance    Bangalore    Karnataka           100.0                    50   NaN      NaN           40         10         NaN     NaN     6.11       6    16   3.4
2  Institution of Nation Importance    Kozhikode       Kerala            89.0                    30    20       10           10         20          10     NaN     5.46       5  15.2   2.5
3  Institution of Nation Importance       Mumbai  Maharashtra            99.0                    40    20       10           20         10         NaN     NaN     5.82    5.96    14  2.84
4               Private Stand Alone  Navi Mumbai  Maharashtra            75.0                    10    20       20           10         20          10      10      3.6     2.8    14   1.8
EN

回答 1

Stack Overflow用户

发布于 2020-05-13 01:20:43

anti-pythonic.循环,并检查列名是否包含'Unnamed',然后使用pandas.DataFrame.rename.loc一起更改这些列名。

代码语言:javascript
复制
for col in df.columns:
    if 'Unnamed' in col:
        df.rename(columns={col: df.loc[0, col]}, inplace=True)

  • 使用字典理解来创建一个dict,其中包含要更改

的所有名称。

代码语言:javascript
复制
new_names = {col: df.loc[0, col] for col in df.columns if 'Unnamed' in col}

# update the names
df = df.rename(new_names, axis=1)

  • Alternatively,将一个新列表分配给df.columns,该列表可以使用list-comprehension.
  • Keep现有列名col (如果'Unnamed'不在当前名称中),否则将col替换为col第一行( df.loc[0, col].

)中的值

代码语言:javascript
复制
df.columns = [col if 'Unnamed' not in col else df.loc[0, col] for col in df.columns]

  • df = df.drop(0, axis=0).reset_index(drop=True)将删除行0,并重置索引.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61764595

复制
相关文章

相似问题

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