【发布时间】:2019-04-23 08:36:20
【问题描述】:
我在尝试创建 for 循环时有点困惑。
我有一个包含一些推文信息的数据框,我需要 2 列用于此循环:tweet_id 和 expanded_urls。
我的数据框中有些情况下expanded_urls 不完整,它们只是'twitter.com/xxx/status/'。但是正确的链接在状态之后有推文 ID,例如:twitter.com/xxx/status/1234567890
所以,我试过这个:
for i in line:
twitter_archive_master['expanded_urls'] = np.where(twitter_archive_master['expanded_urls'] == 'https://twitter.com/xxx/status/', ('https://twitter.com/xxx/status/'+ twitter_archive_master.tweet_id), twitter_archive_master['expanded_urls'])
所以我选择了带有这个不完整 URL 的每一行并尝试添加他们的 ID,但是我收到了这个错误:
TypeError: must be str, not int
我做错了什么?
两列都是对象。
【问题讨论】:
-
('https://twitter.com/xxx/status/'+ twitter_archive_master.tweet_id)也许这需要明确地做成一个str? -
是的,推文 ID 不是字符串。它以 int 形式返回,因此需要显式转换;添加一个字符串和一个 int 不会隐式转换。如果您愿意,也可以使用字符串插值、格式化字符串或 f 字符串,例如
'http://url.com/{:d}'.format(tweet_id).
标签: python pandas numpy for-loop replace