我有以下类型的代码
ps=[1,2,3,4]
for subj in ps:
num=num+1
datapath='/home/subj%d' %(int(subj))
if num==1:
d1= pd.read_csv(datapath, 'words.csv')
if num==2:
d2= pd.read_csv(datapath, 'words.csv')
if num==3:
d3= pd.read_csv(datapath, 'words.csv')
if num==4:
d4= pd.read_csv(datapath, 'words.csv')
我想简化,即将csv文件分配给新的d [num]变量,如下所示,不能正常工作
ps=[1,2,3,4]
for subj in ps:
num=num+1
datapath='/home/subj%d' %(int(subj))
d[num] = pd.read_csv(datapath, 'numbers.csv')
d [num]应该是每个循环的不同数值数据集
有什么建议吗?谢谢!
答案 0 :(得分:4)
创建一个列表并附加数据。
ps=[1,2,3,4]
d = []
for subj in ps:
datapath = '/home/subj%d' % (subj)
d.append(pd.read_csv(datapath, 'numbers.csv'))
您可以使用d[0]
至d[3]
访问数据。
使用列表推导将导致以下代码:
ps = [1,2,3,4]
d = [pd.read_csv('/home/subj%d' %(subj), 'numbers.csv') for subj in ps]
答案 1 :(得分:0)
这样做:
paths = map('/home/subj{}'.format, ps)
datas = map(pd.read_csv, paths)
现在您有一个DataFrame列表,但是如果您想要单独的变量,您可以:
d1, d2, d3, d4 = datas