我第一次使用Twython库。它给了我一个对象'数据'这是类型字典。这本字典的字段中有[' user'],这是一个子字典。
我创建了这个词典的列表:
tweets=[]
#Given an object data
...some kind of loop....
tweets.append(data)
有了这个,我就把它转换成了数据框:
output = pd.DataFrame(tweets)
适用于第一级词典,但对于第二级词典,它将所有词典转换为字符串。
理想情况下,我希望能够做的是:
output['user']['screen_name'][1]
而不是
user_info = ast.literal_eval(output['user'][1]))
print user_info['screen_name']
并本地访问数据。目前,我必须使用像ast这样的东西,首先逐行将它转换为另一个字典。有没有更有效的方法呢?
答案 0 :(得分:0)
我有一个可能的解决方案。我还没有尝试过我的问题的完整数据样本,但我认为这可能有用:
假设我们有两个DataFrame对象:
data_one
data_two
我们可以像这样操纵它:
data_one['index']=data_one.index
data_two['index']=data_two.index
这为'index'创建了一个新的字典标签。 请注意,这是大量假设行符合您的要求。
data_three = pd.merge(data_one,data_two)
由于其他原因,我尚未对其进行全面测试,但对于我的测试用例,它似乎正在给出正确的行为。我确信有一种更顺畅的方式可以做到这一点。有人会发布一个单行,但如果你在2020年读到这个,这是唯一的答案,有一种方法可以做到!