猿问

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

所以,我有一个空的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)),我会得到以下凌乱的结果,

在这种情况下,我如何有效地将此类数据附加到我的数据框中?



偶然的你
浏览 281回答 1
1回答

肥皂起泡泡

您可以做的一件事是创建这样的数据: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.concatdf_total = pd.concat([df1, df2, ... dfn])或者,如果您刚刚收到新批次,您可以尝试:df = pd.concat([df, df_new_batch])链接到pd.concat的文档
随时随地看视频慕课网APP

相关分类

Python
我要回答