在函数中重命名Pandas索引

2024-09-27 19:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

nationwide_measures = pd.read_sql_query("""select state,
          measure_id,
          measure_name,
          score
from timely_and_effective_care___hospital;""", conn)

我创建了一个函数:

^{pr2}$

输出是一个包含以下5列的数据帧:

"Index" | ('Average',0) | ('Maximum',0) | ('Minimum',0)| ('Standard Deviation',0)

如何更改输出以重命名6列:

"Measure ID" | "Measure Name" | "Average" | "Maximum" | "Minimum" | "Standard Deviation"

我试过:

df = pd.DataFrame({'Minimum': group.min(), 'Maximum': group.max(), 'Average': group.mean(), 'Standard Deviation': group.std()}, index = [0], columns=["Measure ID", "Average", "Maximum", "Minimum", "Standard Deviation"])

以及

df.columns = ["Measure ID", "Average", "Maximum", "Minimum", "Standard Deviation"]

在函数内部,两者都不起作用。在


Tags: columns数据函数iddfgroupstandardpd
2条回答

首先,这里有一种向dataframe添加新列的方法。在

df['Measure ID'] = pd.Series(df.index.values)

示例

^{pr2}$

很难准确地告诉你你需要什么,因为我们没有所需的全部输入。但是可以按照相同的格式添加新列

df['NEW COLUMN NAME'] = pd.Series(NEW_COLUMN_DATA)

我假设您希望以与示例相同的方式对列进行排序,下面是如何对列进行重新排序。在

假设这是你的数据帧:

   Average  Maximum  Minimum  Standard Deviation  Measure ID Measure Name
0        0        0        1                   1           0        Place
1        1        0        1                 324           1       Holder

然后我们可以这样做:

>>> cols = df.columns.tolist()
['Average',
 'Maximum',
 'Minimum',
 'Standard Deviation',
 'Measure ID',
 'Measure Name']
>>> cols = cols[-2:] + cols[:-2]
['Measure ID',
 'Measure Name',
 'Average',
 'Maximum',
 'Minimum',
 'Standard Deviation']
>>> df = df[cols]
   Measure ID Measure Name  Average  Maximum  Minimum  Standard Deviation
0           0        Place        0        0        1                   1
1           1       Holder        1        0        1                 324

让我们试试这个例子。在

import pandas as pd
import numpy as np

df = pd.DataFrame({'state':np.random.choice(['TX','CA','NY'],100),'measure_id':np.random.randint(1,5,100),'measure_name':np.nan,'score':np.random.randint(50,100,100)})

dict = {1:'Measure A',2:'Measure B',3:'Measure C',4:'Measure D',5:'Measure E'}

df['measure_name'] = df['measure_id'].map(dict)

输入数据:

^{pr2}$

输出:

   Measure ID Measure Name    Average  Maximum  Minimum  Standard Deviation
0           1    Measure A  74.346154       99       53           13.734460
1           2    Measure B  70.720000       97       50           16.084465
2           3    Measure C  76.130435       97       51           14.943239
3           4    Measure D  77.576923       97       56           10.756107

相关问题 更多 >

    热门问题