【发布时间】:2018-08-23 19:12:12
【问题描述】:
我有一个不整洁的 Tweet 对象数据框。有两列包含列表:hashtags 和 expanded_urls。我试图通过在行/列索引中仅保留 1 个值来遵循整洁的数据原则。
编辑:这个问题被标记为this answer 的重复项,它只是将列表拆分为更多列。这对我不起作用,因为 1 条推文中的标签数量可能不定。
这是我的tweet DataFrame 的示例:
-----------------------------------------------------------
tweet_id | hashtags | expanded_urls
-----------------------------------------------------------
123 | ['lol','bff'] | ['fakeurl.com']
124 | [] | ['url1.io', 'url2.expanded.co']
我可以通过两种可能的方式来整理这些数据。
1:只需将新行添加到 DataFrame,几乎所有行内容都复制过来:
---------------------------------------------
tweet_id | hashtag | expanded_url
---------------------------------------------
123 | 'lol' | 'fakeurl.com'
123 | 'bff' | 'fakeurl.com'
124 | '' | 'url1.io'
124 | '' | 'url2.expanded.io'
我认为这不会很有效,尤其是因为会有很多插入/追加操作。但是,将单个 DataFrame 传递给单个 scikit-learn 模型会使事情变得非常简单。
2:创建 2 个新的 DataFrame:
第一个是带有相应tweet_ids 的主题标签:
------------------
tweet_id | hashtag
------------------
123 | `lol`
123 | `bff`
另一个是带有相应tweet_ids 的网址:
------------------
tweet_id | url
------------------
123 | `fakeurl.com`
124 | `url1.io`
124 | `url2.expanded.co`
这看起来更干净,但我不完全确定如何修改原始 DataFrame;我会删除相应的列并保留 3 个单独的表吗?有没有将这 3 个 DataFrame 合并为 1 个的好方法,还是每次我想知道哪些主题标签与推文相关联时都必须单独查找?
【问题讨论】:
-
您的用例是什么?将数据输入 scikit 模型进行预测?您将对数据执行什么样的处理?例如,对于每个标签,您会执行任何聚合吗?
标签: python python-3.x pandas dataframe scikit-learn