[英]How to append rows in pandas.DataFrame in for loop
嗨,我正在尝试在新创建的 Pandas 数据框中追加行
###expression
for i in active_brain_regions:
indices = np.where(LM == i)
expr = gene[indices]
mean = np.mean(expr)
dat= [[i, mean, str("nifti")]]
dd = pd.DataFrame(dat, columns = ['region', 'mean expr', 'gene_id'])
dd.append(dd)
dd 应该看起来像
0.0 -0.424069 nifti
1.0 -1.0 nifti
.
.
.
11.0 0.23352 nifti
但是在运行 for 循环之后,dd 只是一个大小为 (1,3) 的数据帧,其中包含区域 11..
您可以分配回来,因为使用了熊猫方法DataFrame.append
:
dd = dd.append(dd)
或者通过纯 python append
(就地工作)创建数据帧列表并仅使用concat
一次:
L = []
for i in active_brain_regions:
indices = np.where(LM == i)
expr = gene[indices]
mean = np.mean(expr)
dat= [[i, mean, str("nifti")]]
dd = pd.DataFrame(dat, columns = ['region', 'mean expr', 'gene_id'])
L.append(dd)
df = pd.concat(L, ignore_index=True)
但最快的解决方案应该是创建列表列表并只传递给DataFrame
构造函数一次:
L = []
for i in active_brain_regions:
indices = np.where(LM == i)
expr = gene[indices]
mean = np.mean(expr)
dat= [[i, mean, str("nifti")]]
L.append(dat)
df = pd.DataFrame(L, columns = ['region', 'mean expr', 'gene_id'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.