我有一个像这样的文件
AAPL, TSCO, ASDA, ....
10, 11, 12, ...
9, 10, 11, ...
...,...,...,...
现在有一种方法可以将所有这些列表作为其列标题的变量导入。它将是AAPL = [ 10, 9, ...,...]
我知道如何使用以下方法打印出列标题列表:
import pandas as pd
df = pd.read_csv('foo.csv', index_col=0)
col_headers = list(df.columns)
所以现在我可以遍历此列表,但是有一种方法可以自动将变量名分配为列表标题?
答案 0 :(得分:3)
最好的方法是创建列表字典,并为每个列表选择键-在此按列名称选择:
d = df.to_dict('list')
print (d)
{'AAPL': [10, 9], 'TSCO': [11, 10], 'ASDA': [12, 11]}
print (d['AAPL'])
[10, 9]
print (type(d['AAPL']))
<class 'list'>
您可能需要什么,但recommended却没有:
for c in df.columns:
globals()[c] = df[c].tolist()
print (AAPL)
[10, 9]
答案 1 :(得分:0)
这是不需要pandas
的解决方案。
import csv
class MyTable:
def __init__(self, filename):
with open(filename, newline='') as csvfile:
reader = csv.DictReader(csvfile)
self.data = [row for row in reader]
def column(self, key, cast_as = str):
return sorted([
cast_as(value[key])
for value in self.data
])
# usage:
>>> dataset = MyTable("foo.csv")
>>> aapl = dataset.column('AAPL', float)
>>> print(aapl)
[10., 9.]