python - 将索引值导出为列表

标签 python

我有两个如下所示的列表:

speakers = ['S0\n', 'S0\n', 'S0\n', 'S1\n']
breaks = [0.86, 10.31, 22.43, 5.83]

我的最终目标是根据时间值对它们进行排序,所以我得到了这两个列表:

speakers = ['S0\n', 'S1\n', 'S0\n', 'S0\n']
breaks = [0.86, 5.83, 10.31, 22.43]

因此我尝试这样做:

#create a dataframe
import pandas as pd
df = pd.DataFrame(breaks, speakers)
df.columns = ['breaks']
df = df.sort(['breaks'], ascending=[1])

现在这为我提供了具有我正在寻找的排名的数据框。但是我可以像这样提取一个列表:

breaks = df['breaks'].tolist()

但是我找不到将索引值导出为列表的方法?关于如何做到这一点的任何想法?或者有更好的方法来解决我的问题?

什么

最佳答案

没有 Pandas 的尝试,

breaks,speakers = map(list,zip(*sorted(zip(breaks,speakers))))

执行,

speakers = ['S0\n', 'S0\n', 'S0\n', 'S1\n']
breaks = [0.86, 10.31, 22.43, 5.83]
breaks,speakers = map(list,zip(*sorted(zip(breaks,speakers))))

结果

In [4]: speakers
Out[4]: ['S0\n', 'S1\n', 'S0\n', 'S0\n']

In [5]: breaks
Out[5]: [0.86, 5.83, 10.31, 22.43]

使用 pandas

import pandas as pd
df = pd.DataFrame()
df['speakers'] = speakers
df['breaks'] = breaks
df = df.sort(['breaks'], ascending=[1])
speakers = df['speakers'].tolist()
breaks = df['breaks'].tolist()

结果

print speakers,breaks
['S0\n', 'S1\n', 'S0\n', 'S0\n'] [0.86, 5.83, 10.31, 22.43]

关于python - 将索引值导出为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43994780/

相关文章:

python - 是否可以在不实例化类的情况下导入类方法?

python - 如何逐行对文本文件进行排序

python - 如何在表单的 __init__ 函数中绑定(bind)字段

python - 如何在 numpy.linalg.solve 中使用稀疏矩阵

php - 比较大量相似文本的最简单方法是什么?

python - 将带有 `\` 的字符串转换为 json 或字典数据

python - CircleCI 中未填充测试摘要的测试结果

python - 为什么 "counting sort"不是更广泛使用的算法?

python - Thread.getName() 不代表实际的 worker 名称

python - Vim 插件无法识别 CentOS 中的 python 文件