栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在for循环中在pandas数据框中追加行?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在for循环中在pandas数据框中追加行?

假设您的数据如下所示:

import pandas as pdimport numpy as npnp.random.seed(2015)df = pd.Dataframe([])for i in range(5):    data = dict(zip(np.random.choice(10, replace=False, size=5),         np.random.randint(10, size=5)))    data = pd.Dataframe(data.items())    data = data.transpose()    data.columns = data.iloc[0]    data = data.drop(data.index[[0]])    df = df.append(data)print('{}n'.format(df))# 0   0   1   2   3   4   5   6   7   8   9# 1   6 NaN NaN   8   5 NaN NaN   7   0 NaN# 1 NaN   9   6 NaN   2 NaN   1 NaN NaN   2# 1 NaN   2   2   1   2 NaN   1 NaN NaN NaN# 1   6 NaN   6 NaN   4   4   0 NaN NaN NaN# 1 NaN   9 NaN   9 NaN   7   1   9 NaN NaN

然后可以将其替换为

np.random.seed(2015)data = []for i in range(5):    data.append(dict(zip(np.random.choice(10, replace=False, size=5),   np.random.randint(10, size=5))))df = pd.Dataframe(data)print(df)

换句话说,不要为每一行形成一个新的Dataframe。相反,请收集字典列表中的所有数据,然后

df =pd.Dataframe(data)
在循环外部最后调用一次。

每次调用都

df.append
需要为具有新行的新Dataframe分配空间,将所有数据从原始Dataframe复制到新Dataframe,然后将数据复制到新行。所有这些分配和复制使
df.append
循环调用效率非常低。复制的时间成本随行数成倍增长。一次调用Dataframe的代码不仅更易于编写,而且性能会更好-
复制的时间成本与行数成线性增长。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号