熊猫:如何从现有列下的列表列表中插入新数据?

时间:2019-02-08 04:39:45

标签: python arrays pandas dataframe append

因此,我有一个空的pandas数据框,我打算多次附加到该数据框,并使用

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

最终,我具有列表列表(或数组,如果需要的话)形式的数据,并希望将其全部添加到当前列下的空数据框中。

数据是这样生成的,(我正在从twitter抓取数据,btw)

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)),则会得到以下混乱的结果,

enter image description here

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

谢谢大家。

1 个答案:

答案 0 :(得分:0)

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

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

这样,您只需遍历tweet数组一次即可构建矩阵,然后可以将其馈送到熊猫:

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

一次性构建所有数据,然后围绕它构建一个熊猫数据框,比将每个观察值附加到数据框上要有效得多。

如果要使用桶式方法,建议您使用上述方法构造数据帧列表,然后使用pd.concat

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

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

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

链接到pd.concat

的文档