如何将索引转换为列表?

9 浏览
0 Comments

如何将索引转换为列表?

我的索引:\n

Index([u'Newal', u'Saraswati Khera', u'Tohana'], dtype='object')

\n我需要将这个格式转换成以下格式的列表:\n

['Newal','SaraswatiKhera','Tohana']

0
0 Comments

如何将索引转换为列表?

问题的出现原因是用户想要将DataFrame的索引转换为列表。用户提供了几种解决方法,并进行了性能比较。下面是问题的解决方法和性能比较结果:

解决方法一:使用tolist()方法或list()函数将索引转换为列表。

print df.index.tolist()
print list(df.index)

解决方法二:使用values.tolist()方法将索引转换为列表。

print df.index.values.tolist()

如果需要编码为UTF-8:

print [x.encode('UTF8') for x in df.index.tolist()]

另一种解决方法是将索引转换为字符串:

print [str(x) for x in df.index.tolist()]

用户还提供了性能比较结果:

import pandas as pd
import numpy as np
np.random.seed(1)
df = pd.DataFrame(np.random.randint(10, size=(3,3)))
df.columns = list('ABC')
df.index = [u'Newal', u'Saraswati Khera', u'Tohana']
print df.index.tolist()
print list(df.index)
print df.index.values.tolist()

输出结果:

[u'Newal', u'Saraswati Khera', u'Tohana']
[u'Newal', u'Saraswati Khera', u'Tohana']
[u'Newal', u'Saraswati Khera', u'Tohana']

进行性能比较:

%timeit list(df.index)
%timeit df.index.tolist()
%timeit df.index.values.tolist()

输出结果:

The slowest run took 37.42 times longer than the fastest. This could mean that an intermediate result is being cached 
100000 loops, best of 3: 2.18 µs per loop
The slowest run took 22.33 times longer than the fastest. This could mean that an intermediate result is being cached 
1000000 loops, best of 3: 1.75 µs per loop
The slowest run took 62.72 times longer than the fastest. This could mean that an intermediate result is being cached 
1000000 loops, best of 3: 787 ns per loop

最后,用户总结了几种解决方法的性能,并得出结论使用df.index.values.tolist()的性能最佳。

0