如何重命名pandas数据框中的条目?

时间:2016-04-15 15:39:53

标签: python pandas rename

我有一个像这样的数据框

df=
a  b  
54 12
54 16
18 3
3  33

我想重命名从0开始的条目并返回如下内容:

df1=
a  b
0  1
0  2
3  4
4  5

1 个答案:

答案 0 :(得分:1)

IIUC,您可以使用以下命令获取数据框中的唯一值列表:

In [1]: pd.Series(df.values.flatten()).unique()
Out[1]: array([54, 12, 16, 18,  3, 33])

让它成为一个系列(你会明白为什么):

In [2]: series = pd.Series(pd.Series(df.values.flatten()).unique())
In [3]: series
Out[3]:
    0
0  54
1  12
2  16
3  18
4   3
5  33

现在您需要做的就是将原始值替换为上述系列的索引。

对于给定的值,例如16,您就是这样做的:

In [4]: series[series==16].index[0]
Out[4]: 
2

现在,您可以使用lambda函数将其应用于整个数据框。方法applymap将lambda函数分别应用于每个元素:

In [5]: df.applymap(lambda x: series[series==x].index[0])
Out[5]:
   a  b
0  0  1
1  0  2
2  3  4
3  4  5