【问题标题】:I need help! Read from CSV for matching condition or less than value using Python我需要帮助!使用 Python 从 CSV 读取匹配条件或小于值
【发布时间】:2017-04-19 23:00:03
【问题描述】:

我有一个问题:

在社交网络中:

  • 任何用户都可以发布原创内容
  • 任何用户都可以转发原创内容或其他用户的转发
  • 任何用户都可以关注任何其他用户

社交网络数据以 CSV 文件表示,格式如下:

postId, repostId, followers
1, -1, 120
2, 1, 60
3, 1, 30
4, 2, 90
5, 3, 40
6, 4, 10
7, -1, 240
8, 7, 190
9, 7, 50

地点:

  • postId - 帖子或转发的 ID
  • repostId - 被转发的内容的 ID,如果这是原始帖子,则为 -1
  • 关注者 - 发布帖子的用户拥有的关注者数量

编写一个程序来分析这个社交网络,以输出任何原创内容达到的观众数量。例如,对于用户 1 和 7,输出将是:

1:350

7:480

我的动机是在 CSV 文件打开时从单元格中读取,然后如果单元格小于零,那么我知道这是一个独特的帖子。但是,这会使部分总和不完整,因此我正在查看行中的指定值是否与条件匹配。

我的解决方案:

# import csv module
import csv

# ensure path to csv file is apporpriate in temp
with open("filepath", 'rb') as f:
    reader = csv.DictReader(f)
    rows = [row for row in reader if row['repostId'] <= '0'] # go through each row of repostId, looking for a negative value

# for each iteration of rows, print the number of corresponding followers
for followers in rows:
    print followers

【问题讨论】:

  • 你有什么问题?你的解决方案有问题吗? “对于用户 1 和 7”,您的意思是“对于帖子 1 和 7 及其转发?

标签: python csv if-statement conditional


【解决方案1】:

比较一个数字和一个字符串:

rows = [row for row in reader if int(row['repostId']) <= 0]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多