将值从dataframe列追加到列表

时间:2019-05-27 07:45:49

标签: python pandas list append

我有一个包含几列的数据框,我想将一列的值附加到一个空列表中,以便所需的输出如下:

#
# configuration written to /home/bartlomiej/br-test-pkg/br-arm-full-static/.config
#
Value requested for BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9 not in final .config
Requested value:  BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
Actual value:     

Using support/config-fragments/autobuild/br-arm-full-static.config as base
Merging support/config-fragments/minimal.config
Merging ../../config/sama5d4_xplained_defconfig
  GEN     /home/bartlomiej/br-test-pkg/br-arm-full-static/Makefile
#
# configuration written to /home/bartlomiej/br-test-pkg/br-arm-full-static/.config
#
Value requested for BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9 not in final .config
Requested value:  BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
Actual value:     

Using support/config-fragments/autobuild/br-arm-full-static.config as base
Merging support/config-fragments/minimal.config
Merging ../../config/sama5d4_xplained_defconfig
  GEN     /home/bartlomiej/br-test-pkg/br-arm-full-static/Makefile
#
# configuration written to /home/bartlomiej/br-test-pkg/br-arm-full-static/.config
#
Value requested for BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9 not in final .config
Requested value:  BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
Actual value:     

我尝试了以下方法:

empty_list = [value_1,value_2,value_3...]

无论哪种方式,我都会得到一个列表,其中包含列表,numpy数组或序列,我想直接拥有记录。

5 个答案:

答案 0 :(得分:3)

我相信您只需要一列即可:

a_list = df['iso'].tolist()

对于扩展列表,请通过附加来自可迭代用途extend的元素:

a_list = []
a_list.extend(df['iso'].tolist())
a_list.extend(df['country'].tolist())
print (a_list)
['x', 'y', 'z', 'w', 'a', 'b', 'c', 'd']

另一种解决方案是将numpy.ravel与转置一起使用:

a_list = df[['iso','country']].values.T.ravel().tolist()
print (a_list)
['x', 'y', 'z', 'w', 'a', 'b', 'c', 'd']

答案 1 :(得分:2)

您的问题来自df['iso'].tolist()创建列表的事实。该列表将被追加(在列表中的单个索引处放置一个位置),因此您将获得一个列表列表。您可以尝试:

a_list.extend(df['iso'].tolist())

答案 2 :(得分:1)

extend可以满足您的要求。如果您尝试使用append进行此操作,则可以执行以下操作:

import itertools
a_list = []
a_list.append(df.iso.tolist())
a_list.append(df.country.tolist())
a_list=list(itertools.chain.from_iterable(a_list))
print(a_list)

输出

['x', 'y', 'z', 'w', 'a', 'b', 'c', 'd']

答案 3 :(得分:1)

要访问Pandas数据框每一行的数据,我们可以使用DataFrame.iat属性,然后将每一行的数据附加到列表的末尾。 在第一个for循环中,遍历每行并创建一个列表来存储当前行的数据 在第二个for循环中,遍历所有列,然后将当前行添加到列表中,然后将每列的数据添加到列表中

df = pd.DataFrame({'country':['a','b','c','d'],'gdp':[1,2,3,4],'iso':['x','y','z','w']})
a_list = []
for i in range((df.shape[0])):
cur_row =[]
for j in range(df.shape[1]):
    cur_row.append(df.iat[i, j])            
a_list.append(cur_row) 

答案 4 :(得分:0)

这个例子应该足够了:

myList = df['iso'].tolist() 
print(myList)

输出:

  

['x','y','z','w']