Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从行中的字符串更改列名称_Python_Pandas - Fatal编程技术网

Python 从行中的字符串更改列名称

Python 从行中的字符串更改列名称,python,pandas,Python,Pandas,假设我们有一个数据帧(1000行100列),它的形式如下 unnamed : 1 unnamed : 2 unnamed : 3 unnamed : 4 unnamed : 5 ... unnamed : 99 0 Names Total players 1 (empty cell) male female age<

假设我们有一个数据帧(1000行100列),它的形式如下

      unnamed : 1      unnamed : 2        unnamed : 3        unnamed : 4          unnamed : 5       ... unnamed : 99
0     Names            Total players
1     (empty cell)      male               female            age< 18(string)      age>18(string)                            
2     Team 1              5                  2                   4                    3
3     Team 2           
...
999
未命名:1未命名:2未命名:3未命名:4未命名:5。。。未名:99
总共有0名玩家
1(空单元格)男女年龄<18(字符串)年龄>18(字符串)
2队1 5 2 4 3
3第2队
...
999
我想要它的形式

     Names    Total players male    Total players female  Total players age< 18(string)  Total players age> 18(string)
0    Team 1             5                2                         4                               3               
1    Team 2          
...
999
姓名球员总数男性球员总数女性球员总数年龄<18岁(字符串)球员总数年龄>18岁(字符串)
0团队1 5 2 4 3
1第2队
...
999
试试这个:

# rename columns
df.columns = df.iloc[0]
# delete the first row
df = df.iloc[1:]
试试这个

x = df.loc[0].dropna().to_list() //first row
y = df.loc[1].dropna().to_list() // second row

df.columns = x[:1] + [f'{x[1]} {col}' for col in y] // creating new columns using x and y

df = df.loc[2:].reset_index(drop=True)

print(df)
输出:

    Names Total players male Total players female Total players age< 18(string) Total players age>18(string)
0  Team 1                  5                    2                             4                            3
1  Team 2                NaN                  NaN                           NaN                          NaN
姓名球员总数男性球员总数女性球员总数年龄<18岁(字符串)球员总数年龄>18岁(字符串)
0团队1 5 2 4 3
1队2楠楠楠

您的答案没有给出预期的输出。我添加了一行,删除了第一行。@deadshot-我想是的。让我们等待AlexNo的列名应该是这样的
名称球员总数男性球员总数女性球员总数年龄<18岁(字符串)球员总数年龄>18岁(字符串)
我尝试了df.iloc[0]+df.iloc[1],但问题是两个词之间没有任何空格。如何添加空间?我尝试了df.iloc[0]+''+df.iloc[1]。此外,它不会将所有玩家的姓名添加到所需的其余单元格(对于年龄列,我的意思是)使用
map()
而不是循环怎么样?为此,我们不使用
x
而是使用
map(lambda x:'Total players'+x,y)
。你说呢?@JenilDave我们需要将地图的结果转换为列表是的,这是不言而喻的。@JenilDave为你提供的信息是列表理解不是为了循环谢谢,但我知道!