小编ian*_*han的帖子

两个数据框的索引和列的并集

我不确定这是否是正确的表达方式,但是搜索合并或更改索引并没有帮助我。基本上我有两个数据框:

df_A = pd.DataFrame(1, index=[1,2,3], columns = [1,2,3])
df_B = pd.DataFrame(0, index=[1,2,4], columns = [1,2,5])
Run Code Online (Sandbox Code Playgroud)

我想对df_A和df_B进行转换,使它们共享相同的索引和列,这是两者的并集。缺少的值将用NaN填充:

df_A_new:
          1    2    3    5
index
1         1    1    1   NaN
2         1    1    1   NaN
3         1    1    1   NaN
4        NaN  NaN  NaN  NaN

df_B_new:
          1    2    3    5
index
1         0    0   NaN   0
2         0    0   NaN   0
3        NaN  NaN  NaN  NaN
4         0    0   NaN   0
Run Code Online (Sandbox Code Playgroud)

python indexing union pandas

3
推荐指数
1
解决办法
752
查看次数

复制熊猫数据帧和系列

如果我将名称引用到列表中,我知道最后一行代码会更改a和b中的两个值:

a = [1,2,3]
b = a
b[1] = 4
Run Code Online (Sandbox Code Playgroud)

因此(其中一种)正确的方法是使用:b = a[:].这样,改变b的值不会影响a的值.

但是,对于pandas系列或数据帧来说,情况似乎并非如此:

a = pd.DataFrame({1: [2,3,4], 2: [3,4,5]})
b = a[:]
b.loc[2,2] = 10
Run Code Online (Sandbox Code Playgroud)

最后一行代码将改变b和a.有人可以向我解释为什么这里有区别?另外,在不影响原始系列/数据帧的情况下,创建新系列/数据帧的正确方法是什么?我应该一直使用b = a.copy(deep=True)吗?

python copy reference series pandas

2
推荐指数
1
解决办法
1664
查看次数

标签 统计

pandas ×2

python ×2

copy ×1

indexing ×1

reference ×1

series ×1

union ×1