如何将索引转换为列表?
如何将索引转换为列表?
问题的出现原因是用户想要将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()的性能最佳。