【问题标题】:Python data summarize functionPython数据汇总函数
【发布时间】:2021-06-03 03:06:48
【问题描述】:

我的问题如下,我想总结new_results_reported列的所有值,这些值具有Overall_Outcome'正'并且属于状态Alabama

过滤掉所有具有state_name Alabama 和overall_outcome 'Positive' 的列,并在new_results_reported 列中显示它们的总和。

state_name                object
overall_outcome           object
date                      object
new_results_reported       int64
total_results_reported     int64
dtype: object

new_results_reported 从状态 Alabama 的输出应该是整数

我做了一些研究并想出了类似的东西:

for overall_outcome in table1:
    if overall_outcome != 'Positive':

不幸的是,我完全不知道如何设置功能或如何做到最好。

非常感谢您的帮助。

【问题讨论】:

  • 这与 pandas 和 dataframe 有关吗?
  • 您希望答案为单个整数吗?
  • 嗨,是的,这与 Panda 和 Df 有关。
  • 我希望我能看到在阿拉巴马州的 'x' ppl 仅在 2020 年测试为阳性。因为表中也是 2021 年的值
  • 我不明白你想说什么。请通过更新问题更清楚地解释您的输出应该是什么样子

标签: python


【解决方案1】:

根据您在问题中给出的提示,以下代码将完成工作。请研究一些内置的python函数,如zip,它将压缩许多列表中相同索引的元素。

我假设您的数据框名称是 table1

total_sum = 0

for state_name, overall_outcome, dt, new_results_reported in zip(table1['state_name'].values.tolist(), table1['overall_outcome'].values.tolist(),table1['date'].values.tolist(), table1['new_results_reported'].values.tolist()):
  ndt = int(str(dt)[:4])
  if (state_name == 'Alabama') and (overall_outcome == 'Positive') and (ndt == 2020):
    total_sum += int(new_results_reported)

print(total_sum)

【讨论】:

  • 非常感谢您。如果我想查看整个美国 2020 年以来的所有 new_results_reported,我该如何更改功能
  • 为此,您必须添加另一个仅检查 2020 年阿拉巴马州的条件
  • 我该如何定义。如果我添加 " 和 (date=='2020') 它不起作用
  • 欢迎。尝试理解代码,以便您以后可以自己做
  • 如果你有时间可以看看@我的问题
【解决方案2】:

我可以大致理解代码。我只是不明白你是如何得到代码的。我还有一个问题。 我想将阿拉巴马州 2020 年的病例数与绘图中另一个州的病例数进行比较。

: for overall_outcome in table1:
    if overall_outcome != 'Positive':
        plt.plot(table1.date[1:10], table1.new_results_reported[1:10])
        plt.figure(figsize=(8,5))

一切都很混乱,因为它把所有的数据都扔进去了。

我怎样才能在这里只显示阿拉巴马州 2020 年和另一个州的数据进行比较?

【讨论】:

  • 您的数据是否在 pandas 数据框中?如果是这种情况,应该很容易过滤它。
  • 是的,我的数据在 pandas df 中,但我该如何过滤呢?我想要新表中每个州的 new_results_reported 总量
  • 由于您已经接受了答案,您应该创建一个新的不同问题,并显示您的 pandas 数据框的代码......以及列名和示例数据。像 df[df['state_name']=='Alabama' & pd.DatetimeIndex(df['date']).year =='2020'] 这样的东西。这是重复的问题:stackoverflow.com/questions/48978550/…
  • 我已经打开了一个新问题.. 你可以看看吗?看看你能不能帮我解决这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 2017-01-19
  • 2018-05-07
  • 1970-01-01
相关资源
最近更新 更多