Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧列中的值追加到列表_Python_Pandas_List_Append - Fatal编程技术网

Python 将数据帧列中的值追加到列表

Python 将数据帧列中的值追加到列表,python,pandas,list,append,Python,Pandas,List,Append,我有一个包含多个列的dataframe,我想将一列的值附加到一个空列表中,以便所需的输出如下所示: empty_list = [value_1,value_2,value_3...] df = pd.DataFrame({'country':['a','b','c','d'], 'gdp':[1,2,3,4], 'iso':['x','y','z','w']}) a_list = [] a_list.append(df['iso']) a_list.append(df

我有一个包含多个列的dataframe,我想将一列的值附加到一个空列表中,以便所需的输出如下所示:

empty_list = [value_1,value_2,value_3...]
df = pd.DataFrame({'country':['a','b','c','d'],
      'gdp':[1,2,3,4],
      'iso':['x','y','z','w']})
a_list = []

a_list.append(df['iso'])
a_list.append(df['iso'].values)
a_list.append(df['iso'].tolist())
我尝试了以下方法:

empty_list = [value_1,value_2,value_3...]
df = pd.DataFrame({'country':['a','b','c','d'],
      'gdp':[1,2,3,4],
      'iso':['x','y','z','w']})
a_list = []

a_list.append(df['iso'])
a_list.append(df['iso'].values)
a_list.append(df['iso'].tolist())

无论哪种方式,我都会得到一个包含列表、numpy数组或序列的列表,我希望直接获得这些记录

这个例子应该足够了:

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

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


如果只需要附加一列,可以尝试此脚本:

a_list = df['iso'].tolist()
要通过从iterable中追加元素来扩展列表,请使用:

另一种解决方案是与转置一起使用:

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

您的问题源于
df['iso'].tolist()
创建了一个列表。列表被追加(在列表中的单个索引处给定一个位置),因此您可以得到列表的列表。您可以尝试:

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

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']

要访问数据框中每一行的数据,我们可以使用dataframe.iat属性,然后我们可以将每一行的数据附加到列表的末尾。 在first 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) 

所以你需要一个列表=df['iso'].tolist()?如果没有,从示例数据帧中导出的输出是什么?如果你附加到一个列表,你会得到一个列表中的列表。所以,不要追加,直接获取列表,问题就解决了。我需要通过循环多次追加结果,这样就行不通了。很抱歉没有在我的问题中指定,请编辑您的答案,并将解释添加到fullfill stackoverflows指南中,以获得好的答案