【问题标题】:Need assistance with excel python data scraping assignment需要有关 excel python 数据抓取任务的帮助
【发布时间】:2019-10-01 08:42:41
【问题描述】:

我最近刚开始学习 python(已经学习了 6 周),我不知道如何解决这个任务。对于这项任务,我们从 Twitter 获得了一个 excel 数据集,并应该“抓取数据”。

我应该在你拥有的数据集中找到唯一的用户名和他们在 Twitter 上发推文的次数(不包括转发和回复)。 并找出推文数量最多的前 10 位用户(不包括转发和回复)。

我一直在使用 pandas,但找不到正确的代码字符串来完成我需要的操作。

我能够使用此代码过滤所有仅发送“推文”的用户。这似乎是我唯一的突破。

df.loc[df['Relationship'] == "Tweet"]

在数据集中有一列包含用户名“Users1”(即他们的 Twitter 句柄)和一个名为“Relationship”的列(即提及、回复、推文)。这是我一直在使用的两个专栏。

很遗憾,我有点不知所措,需要任何可能的帮助。

谢谢

编辑:

print(df.User1.value_counts(['Relationship'] == "Tweet"))

能够使用此代码取得一些进展^

这确实是我发现的唯一半有用的代码字符串。我已经吐了一个多小时了。

我附上了部分数据的图片。Portion of data

【问题讨论】:

  • 提示:试试groupby 方法
  • 请编辑您的问题,包括您为超越此范围所做的任何尝试,以及他们出了什么问题。另外,请附上您的数据集的摘录。
  • @pydude 进行了编辑。添加了我的数据集的截图。谢谢
  • @Nikaidoh 我试过了,还是没有成功

标签: python pandas


【解决方案1】:

我认为,您要做的第一件事是为每个 User1 添加一个“tweetcount”列。如果每个换行符代表一条推文,那就意味着计算每个推文字符串中的结束行('\n')。

为了在 pandas 数据框中的一列数据中查找唯一元素,如果您已将 numpy 导入为 np,这应该可以工作:

#generate a numpy array from the dataframe:
names = df[['username']].to_numpy()
#generate a simple list from the numpy array (flatten the array):
temp = [x for items in names for x in items]
#extract the unique elements from the simple list using the count method:
uniques = [x for x in temp if temp.count(x) == 1]

现在您有了一个唯一名称列表,可以从您的 pandas df 中提取索引值:

indices = [x for x in range(len(df)) if df.loc[x, 'username'] in uniques]

要获取每个唯一用户名的整行数据:

for x in indices:
    print(df.loc[x, 'username'], df.loc[x, 'tweetcount'])

在 pandas 数据框中按给定列排序要简单得多(它们也可能是一个更简单的解决方案)。只需使用:

df.sort_values(by='tweetcount')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2010-12-25
    相关资源
    最近更新 更多