熊猫:如何将已有的下列从名单列表新的数据?

问题描述 投票:1回答:1

所以,我有一个空的pandas数据框中,我打算追加多次,这是我给列,与

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

最后,我有数据列表的列表的形式(数组或数组,如果你愿意),并希望这一切目前列下添加到空数据帧。

的数据被这样产生的,(我刮从Twitter数据,顺便说一句)

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

在这种情况下,我怎么能有效地这样的数据追加到我的数据帧?

谢谢大家。

python arrays pandas dataframe append
1个回答
0
投票

有一两件事你可以做的是创造这样的数据:

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'])

这是更有效的构建一气呵成所有的数据,然后围绕它建立一个大熊猫据帧,而不是每一个观测数据框追加。

如果你打算去同一个时段的方法,我建议您构造使用上述dataframes的列表,然后用pd.concat

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

或者,如果你只是获得的新一批,你可以试试:

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

链接pd.concat的文档

© www.soinside.com 2019 - 2024. All rights reserved.