我有一个包含几列的数据框,我想将一列的值附加到一个空列表中,以便所需的输出如下:
#
# 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数组或序列,我想直接拥有记录。
答案 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']