【发布时间】:2020-03-16 07:50:38
【问题描述】:
我有两个非常简单的 Pandas 加法问题,希望你能帮助我。
我的第一个问题:
假设我有以下两个数据框:a_df 和 b_df
a = [[1,1,1,1],[0,0,0,0],[1,1,0,0]]
a_df = pd.DataFrame(a)
a_df =
0 1 2 3
0 1 1 1 1
1 0 0 0 0
2 1 1 0 0
b = [1,1,1,1]
b_df = pd.DataFrame(b).T
b_df=
0 1 2 3
0 1 1 1 1
我想将b_df 添加到a_df 以获得c_df,这样我的预期输出如下:
c_df =
0 1 2 3
0 2 2 2 2
1 1 1 1 1
2 2 2 1 1
我目前使用的方法是将b_df复制到a_df的相同大小并进行加法,如下图所示。但是,如果我的a_df 非常大,此方法效率不高。
a = [[1,1,1,1],[0,0,0,0],[1,1,0,0]]
a_df = pd.DataFrame(a)
b = [1,1,1,1]
b_df = pd.DataFrame(b).T
b_df = pd.concat([b_df]*len(a_df)).reset_index(drop=True)
c_df = a_df + b_df
还有其他方法可以将b_df(不复制它)添加到a_df 以获得我想要的c_df 吗?
我的第二个问题与我的第一个问题非常相似:
假设我有d_df 和e_df 如下:
d = [1,1,1,1]
d_df = pd.DataFrame(d)
d_df=
0
0 1
1 1
2 1
3 1
e = [1]
e_df = pd.DataFrame(e)
e_df=
0
0 1
我想将e_df 添加到d_df,这样我会得到以下结果:
0
0 2
1 2
2 2
3 2
再次,当前我正在使用以下方法(与问题1相同)复制e_df,然后添加d_df
d = [1,1,1,1]
d_df = pd.DataFrame(d)
e = [1]
e_df = pd.DataFrame(e)
e_df = pd.concat([e_df]*len(d_df)).reset_index(drop=True)
f_df = d_df + e_df
有没有办法不复制e_df?
请给我建议和帮助。非常感谢您在高级
汤米
【问题讨论】: