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

根据给定的条件从csv中删除行使用ne文件名导出更新的csv

金烨华
2023-03-14

试图找出代码来删除csv文件中的行,其中在日期列中有从202110(和任何一天)开始的日期。因此,应删除十月的所有行。然后我想保存csv与原始名称'更新'。我认为这两个部分,我试图删除行是不正确的,并保存文件。你能帮忙吗?

我现在的代码是

import os
import glob
import pandas as pd
from pathlib import Path

sourcefiles = source_files = sorted(Path(r'/Users/path/path/path').glob('*.csv'))


for file in sourcefiles:
 df = pd.read_csv(file)
 df2 = df[~df.Date.str.contains('202110')] 
 df2.to_csv("Updated.csv") # How to save with orginal file name + word "updated"

共有1个答案

闾丘玺
2023-03-14

您可以这样做:

for file in sourcefiles:
    df = pd.read_csv(file)
    df.Date = pd.to_datetime(df.Date)
    condition = ~((df.Date.dt.year == 2021) & (df.Date.dt.month == 10))
    df_new = df.loc[condition]

    name, ext = file.name.split('.')
    df.to_csv(f'{name}_updated.{ext}') 

这是假设您的文件名中有一个点。

 类似资料:
  • 问题内容: 我想从Java中删除符合条件的元素。 即: 我能理解为什么这行不通,但是什么是这样做的好方法? 问题答案: 您必须使用和来迭代迭代器(而不是列表)的功能: 注意,迭代器#删除功能被认为是optionnal,但它 是 由ArrayList的迭代器来实现。 这是ArrayList.java中此具体功能的代码: 这行代码就是为什么在迭代时使用它时不会抛出异常。

  • 问题内容: 我只想删除第三行中值为‘0’的行。数据示例如下: 因此,第一行将需要删除,而第二行将保留。 到目前为止,我所拥有的如下: 任何帮助都会很棒 问题答案: 你很亲密 目前,您将整数与进行比较,然后将其与字符串进行比较。当您从文件中读取数据时,它是一个字符串而不是整数,因此这就是您的整数检查当前失败的原因: 另外,您可以使用关键字使当前代码略显pythonic,从而减少代码中的行,并且可以省

  • 问题内容: 我有以下数据框 基本上我可以如下过滤行 我可以如下所示删除/删除一行 但是我想根据条件删除一定数量的行,我该怎么做? 问题答案: 最好的是但需要反转条件-使所有值相等且更高,如下所示: 与功能相同: 另一种可能的解决方案是通过以下方法反转掩码:

  • 问题内容: 有没有一种方法可以对 field1 = x* 和 field2 = y的文档执行删除操作 ? *** 我看到了删除功能,但没有附带。如果使用事务,则存在get和delete,但get似乎不接受“ where”子句。 我希望我在文档中缺少一些内容。 谢谢 问题答案: 为此,您需要先创建所需的查询,然后才使用如下方法:

  • 问题内容: 目标 我已经从hotmail下载了CSV文件,但其中有很多重复项。这些重复项是完整的副本,我不知道为什么我的手机会创建它们。 我想摆脱重复。 方法 编写python脚本以删除重复项。 技术指标 问题答案: 更新:2016 如果您乐于使用有用的外部库: @IcyFlame解决方案的更有效版本 要就地编辑同一文件,您可以使用此

  • 问题内容: 当日期列的值在日期列表中时,我想从熊猫数据框中删除行。以下代码不起作用: 我收到以下错误: ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 问题答案: 您可以使用。 将返回布尔值,具体取决于每个元素是否在列表内。然后,您可以将转换为,反之亦然。