我创建了2个数据框的列表
df = [pd.DataFrame(0, columns = ['a', 'b', 'c'], index = range(0, 5))] * 2
df[0]['a'][1] = 55
当前输出:
[ a b c
0 0 0 0
1 55 0 0
2 0 0 0
3 0 0 0
4 0 0 0, a b c
0 0 0 0
1 55 0 0
2 0 0 0
3 0 0 0
4 0 0 0]
预期输出:
[ a b c
0 0 0 0
1 55 0 0
2 0 0 0
3 0 0 0
4 0 0 0, a b c
0 0 0 0
1 0 0 0
2 0 0 0
3 0 0 0
4 0 0 0]
我希望此代码段为第一个df,col a和索引1分配一个值1。但是,它为两个数据帧都分配了值。
我不确定是否会出现问题,因为我通过将df乘以2来创建列表,从而将结果应用于所有dfs。
有没有一种方法可以创建多个df的列表,并根据索引将结果仅附加到一个df。
谢谢
答案 0 :(得分:1)
改为使用列表理解:
df = [pd.DataFrame(0, columns = ['a', 'b', 'c'], index = range(0, 5)) for _ in range(2)]
df[0]['a'][1] = 55
#
[ a b c
0 0 0 0
1 55 0 0
2 0 0 0
3 0 0 0
4 0 0 0, a b c
0 0 0 0
1 0 0 0
2 0 0 0
3 0 0 0
4 0 0 0]
答案 1 :(得分:1)
您创建了浅表副本。试试这个:
df = [pd.DataFrame(0, columns = ['a', 'b', 'c'], index = range(0, 5)) for _ in range(2)]