我想通过循环遍历字符串列名列表来创建字典中的数据框,而不是直接对数据帧进行切片。例如
df = pd.DataFrame(np.random.randn(100,7), columns=list('ABCDEFG'))
list_of_cols = ['A','B','C']
dictslice = {'%s': df['%s'] % (elt for elt in list_of_cols), 'Z': np.ones(len(df))}
但我不能在字符串之外有格式字符串,所以我不知道如何继续。我不想要像
这样的解决方案df[[list_of_cols]]
因为我想向dictslice添加更多向量,这些向量可能不一定是df。
有人可以帮忙吗?
修改 我很傻,它适用于此:
dictslice = {'%s' % elt : df[elt] for elt in list_of_cols}
但这不起作用:
dictslice = {'%s' % elt : df[elt] for elt in list_of_cols, 'Z': np.ones(len(df))}
答案 0 :(得分:0)
这似乎可以通过简单的变量访问来完成。
这有什么问题:
df = pd.DataFrame(np.random.randn(100,7), columns=list('ABCDEFG'))
list_of_cols = ['A','B','C']
dictslice = dict([(elt, df[elt]) for elt in list_of_cols] + [('Z', np.ones(len(df)))])