当前位置: 首页 > 知识库问答 >
问题:

如何在pandas中保存每个循环后的。csv中的输出而不重写?

仲孙阳
2023-03-14

此外,我希望在打印输出时跳过零值行。

这是我的代码:

import pandas as pd `#pandas library
sample = pd.DataFrame(pd.read_csv ("Sample.csv")) #importing .csv as pandas DataFrame

i = 0
while (i <= 23):
    print('Value for', i) `#i vale`
    sample2 = (sample[sample['Hour'] == i])`#Data for every hour`
    sample3 = (sample2[(sample2['GHI']) == (sample2['GHI'].max(0))]) `#Max value from sample3 DataFrame`
    sample3 = sample3.loc[sample3.ne(0).all(axis=1)]`ignoring all rows having zero values`
    print(sample3)  `print sample3`
    sample3.to_csv('Output.csv')`trying to save for output after every iteration`
    i = i + 1

共有1个答案

唐增
2023-03-14

做你想做的事情的另一种方法是摆脱你的循环,如下所示:

sample_with_max_ghi = sample.assign(max_ghi=sample.groupby('Hour')['GHI'].transform('max'))
sample_filtered = sample_with_max_ghi[sample_with_max_ghi['GHI'] == sample_with_max_ghi['max_ghi']]
output_sample = sample_filtered.loc[sample_filtered.ne(0).all(axis=1)].drop('max_ghi', axis=1)
output_sample.to_csv('Output.csv')

一些解释:

1.

sample_with_max_ghi = sample.assign(max_ghi=sample.groupby('Hour')['GHI'].transform('max'))
sample_filtered = sample_with_max_ghi[sample_with_max_ghi['GHI'] == sample_with_max_ghi['max_ghi']]
output_sample = sample_filtered.loc[sample_filtered.ne(0).all(axis=1)].drop('max_ghi', axis=1)
 类似资料:
  • 问题内容: 我想附加到一个元素并立即更新它。console.log()会按预期显示数据,但是append()在for循环完成之前不执行任何操作,然后立即将其全部写入。 index.html: test.js: server.php: 直到for循环完成后,页面才呈现。在运行javascript之前,至少不应该首先呈现HTML吗? 问题答案: 如果您切换到,则在添加数据时屏幕将能够更新。 如果您坚持

  • 我从复选框中得到了这个数组 PHP查询 我希望插入数组中的数据,而不是在每一行上插入数据。我希望数据以逗号分隔,如data1、data2、data3,然后插入它。

  • 我正在尝试保存一个csv到一个文件夹后,使一些编辑的文件。 每次使用,csv文件都有一个单独的索引列。我想避免将索引打印到CSV。 我试过: 保存文件... 不过,我还是得到了不想要的索引列。当我保存我的文件时,我该如何避免这种情况呢?

  • 对于我的程序,我要编写一个程序,它接受2到10之间的行数。生成n行的乘法三角形。每行包含的条目不超过其行大小。这一点我没有问题。但是,在用户将数字0输入到我的问题“请输入要打印的行数:”之后,应该终止循环并打印“感谢您使用此程序!”我用了一个DO。。。WHILE循环以确定用户是否希望继续。在我的循环中,我将用户想要打印的数字声明为int num。我的循环应该持续到num

  • 问题内容: 我想知道如何将新数据添加到现有csv文件的末尾?在没有提到这样的功能。 问题答案: 您可以通过传递以附加模式打开的文件来附加使用: 使用,以免附加列名。 实际上,pandas有一个包装器可以通过使用参数来做到这一点:

  • 我正在制作一个程序,它从用户那里获取一个字符串并用分隔符逐字分隔它,它几乎完成了。但是,在第一个完整循环之后,来自用户的下一个输入不会通过最后一个while循环。 下面是我要说的代码片段: 我想我需要在单词increment和print行周围再循环一次,并在输入中使用continue序列。hasNext()循环,因为这就是我使用int来运行类似程序的方式,但我不确定这将如何处理字符串。 有什么建议