为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:如何从预先存在的列下的列表列表中插入新数据?

Pandas:如何从预先存在的列下的列表列表中插入新数据?

偶然的你 2021-11-02 15:42:06
所以,我有一个空的pandas数据框,我计划多次附加,我给它列,dataframe = pd.DataFrame([], columns=['Author', 'Date', 'Text', 'Length', 'Favorites', 'Retweets'])最终,我拥有列表列表(或数组数组,如果您愿意)形式的数据,并希望将所有数据添加到当前列下的空数据框中。数据是这样生成的,(我正在从推特上抓取数据,顺便说一句)input = np.array(list(zip([tweet.source for tweet in tweets],                          [tweet.created_at for tweet in tweets],                           [tweet.text for tweet in tweets],                          [len(tweet.text) for tweet in tweets],                          [tweet.favorite_count for tweet in tweets],                          [tweet.retweet_count for tweet in tweets])))这会产生一个数组,其中每个项目对应一条推文以及有关它的所有信息。如果我尝试dataframe.append(pd.DataFrame(input)),我会得到以下凌乱的结果,在这种情况下,我如何有效地将此类数据附加到我的数据框中?
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您可以做的一件事是创建这样的数据:

input = np.array([[tweet.source, tweet.created_at, tweet.text, 
                   len(tweet.text), tweet.favorite_count, tweet.retweet_count]
                                      for tweet in tweets])

这样,您只需遍历推文数组一次即可构建矩阵,然后您可以将其提供给熊猫:

dataframe = pd.DataFrame(input, columns=['Author', 'Date', 'Text', 'Length', 
                                       'Favorites', 'Retweets'])

一次性构建所有数据,然后围绕它构建一个pandas Dataframe,比将每个观察结果附加到Dataframe要高效得多。

如果您打算使用分桶方法,我建议您使用上述方法构建一个数据框列表,然后使用 pd.concat

df_total = pd.concat([df1, df2, ... dfn])

或者,如果您刚刚收到新批次,您可以尝试:

df = pd.concat([df, df_new_batch])

链接到pd.concat的文档


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 279 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号