【发布时间】:2019-11-19 12:42:19
【问题描述】:
每个月,我都会下载一些我负责的工作相关句柄的 Twitter 分析。
我在 powershell 中进行了一些数据按摩(将数字列的 - 更改为空值),以便我的 Excel Power Query 可以轻松处理数据。
我决定将推文文本列中的主题标签复制到他们自己的列中,以便调查它们的表现。
我的整个剧本:
Remove-Item -path .\merged\merged.csv
$InputFiles = Get-Item "*.csv"
$OldString = '"-"'
$NewString = '""'
$InputFiles | ForEach {
(Get-Content -Path $_.FullName).Replace($OldString,$NewString) | Set-Content -Path $_.FullName
}
Get-ChildItem -Filter *.csv | Select-Object -ExpandProperty FullName | Import-Csv | Export-Csv .\merged\merged.csv -NoTypeInformation -Append
由于我意识到我可能需要同时处理多个月,因此我决定每个月简单地重做合并文件。
我正在查看我需要添加什么来提取主题标签,并且我很确定我在正确的轨道上:
Import-Csv .\merged\merged.csv | Select-Object *,@{Name='hashtags';Expression={'XYZZY'}} | Export-Csv file.csv -NoTypeInformation
当然,问题是我不确定我需要在 XYZZY 中添加什么。我知道我的正则表达式是 #[a-zA-Z0-9](在我之前的一些尝试中,我无法让 #\w 捕获除主题标签的第一个字母之外的任何内容。
'Tweet text' 是列名。
推文范围从 0 到 6 个主题标签。我看到的一个问题是,每个正则表达式匹配选项似乎都会返回对象中的项目,我希望在该对象中简单地将它们添加为最终字段中的空格分隔列表。
我可能会遇到的问题: 为什么不在 Excel 中执行此操作? 好问题。我最初想将它添加到电源查询导入中,但实际上似乎不可能。虽然我可以在 VBA 中做到这一点,但我希望这可以作为一种解决方案进行打包。
为什么不在 Python 中这样做呢? 我确实有一个基本完成的解决方案,但我真的很想把它作为一个简单的过程。
什么是标题? "Tweet id","Tweet permalink","Tweet text","time","impressions","engagements","engagement rate","retweets","replies","likes","user profile clicks", “网址点击”、“标签点击”、“详细信息展开”、“固定链接点击”、“应用打开”、“应用安装”、“关注”、“电子邮件推文”、“拨打电话”、“媒体浏览量”、媒体互动”、“提升印象”、“提升互动”、“提升互动率”、“提升转推”、“提升回复”、“提升喜欢”、“提升用户个人资料点击次数”、“提升网址点击次数”、“提升标签点击量”、“推广的详细信息展开”、“推广的永久链接点击”、“推广的应用打开”、“推广的应用安装”、“推广的关注”、“推广的电子邮件推文”、“推广的拨号电话”、“推广的媒体浏览量” “促进媒体参与”
一些示例推文怎么样? 好吧,我的意思是,它们是推文。下面是一些例子:
This is a tweet with zero hashtags.
@somename this is a reply with #one hashtag.
This is a tweet with two #hashtags, one that has #punctuation attached.
【问题讨论】:
-
你能发一些
Tweet Text属性的内容示例吗? -
添加了一些虚假推文。真实数据有 0-6 个标签,但常见的是
-
谢谢...我在演示如何提取主题标签项目中使用了您的示例数据。希望它能满足您的需要... [grin]
标签: regex powershell csv