【发布时间】:2015-07-07 13:56:51
【问题描述】:
我有一个dataframe。我希望将一些数据转换为列表列表。我感兴趣的列是index、Name 和Births。我的代码有效,但似乎效率低下,并且由于某种原因,字母 L 被添加到每个索引的末尾。
我的代码:
import pandas as pd
data = [['Bob', 968, 'Male'], ['Jessica', 341, 'Female'], ['Mary', 77, 'Female'], ['John', 578, 'Male'], ['Mel', 434, 'Female']]
headers = ['Names', 'Births', 'Gender']
df = pd.DataFrame(data = data, columns=headers)
indexes = df.index.values.tolist()
mylist = [[x] for x in indexes]
for x in mylist:
x.extend([df.ix[x[0],'Names'], df.ix[x[0],'Births']])
print mylist
期望的输出:
[[0, 'Bob', 968], [1, 'Jessica', 341], [2, 'Mary', 77], [3, 'John', 578], [4, 'Mel', 434]]
【问题讨论】:
-
我刚刚使用 python 2.7.9 和 pandas 0.16.2 运行了你的代码,输出正是你想要的。
-
@JulienGrenier。是的,我正在寻找代码的效率改进。此外,tolist() 功能似乎在末尾添加了一个 L,因此实际输出为:
[[0L, 'Bob', 968], [1L, 'Jessica', 341], [2L, 'Mary', 77], [3L, 'John', 578], [4L, 'Mel', 434]] -
我也很想看到这个问题的解决方案...
标签: python python-2.7 pandas