繁体   English   中英

如何在 for 循环中追加 pandas.DataFrame 中的行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM