使用循环按pd.dataframe的列生成列表

时间:2018-10-17 03:26:27

标签: python pandas

我是python的新手,想知道是否有一种方法可以使用循环从pandas.dataframe中按列名生成一组列表。 pd.dataframe是通过使用pd.read.excel导入.xlsx文件而生成的,我现在正试图避免花费大量时间编写我认为可能是多余的代码的内容。

举个例子:

import pandas as pd
a=[1,2,3,4]
b=[5,6,7,8]
c=["a","b","c","d"]
df=pd.DataFrame({'b':b,'c':c}, index=a)

关于如何设置和运行循环以获取以下输出的任何想法:

将df中的

列b命名为b的单个列表变量 和c

一样

而不是使用.tolist()对其进行手动编码?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以遍历列并将其存储到字典中,然后按列名进行访问。

empty_dict = {}

for col in df.columns:
    empty_dict[col] = list(df[col])

empty_dict['b']

我假设您想按名称从dataframe列中提取值列表。

答案 1 :(得分:1)

.to_dict()将数据帧转换为字典。输出类型不同,但是要为每个列创建列表,请使用list类型。

>>> df.to_dict('list') 
{'b': [5, 6, 7, 8], 'c': ['a', 'b', 'c', 'd']}