python - 将两个脚本合并为一个代码,用于 csv 文件数据验证

标签 python python-3.x

大家好,目前我有两个脚本,我想将它们合并为 1 个代码。第一个脚本从一组数据中查找丢失的时间戳,并用 NaN 值填充空白行,然后保存到输出文件。第二个脚本比较一组数据中的不同行,并根据测试条件创建一个包含 True/False 值的新列。

如果我将每个脚本作为函数运行,然后使用另一个函数调用这两个脚本,我将得到两个单独的输出文件。如何仅使用 1 个已保存的输出文件来运行此操作?

第一个代码

import pandas as pd
df = pd.read_csv("data5.csv", index_col="DateTime", parse_dates=True)
df = df.resample('1min').mean()
df = df.reindex(pd.date_range(df.index.min(), df.index.max(), freq="1min"))
df.to_csv("output.csv", na_rep='NaN')

第二个代码

with open('data5.csv', 'r') as f:
    rows = [row.split(',') for row in f]
    rows = [[cell.strip() for cell in row if cell] for row in rows]

def isValidRow(row):
    return float(row[5]) <= 900 or all(float(val) > 7 for val in row[1:4])

header, rows = rows[0], rows[1:]
validRows = list(map(isValidRow, rows))

with open('output.csv', 'w') as f:
    f.write(','.join(header + ['IsValid']) + '\n')
    for row, valid in zip(rows, validRows):
        f.write(','.join(row + [str(valid)]) + '\n')

最佳答案

让您的代码作为文件名的函数:

def first_code(file_in, file_out):
    df = pd.read_csv(file_in, ... )
    ...
    df.to_csv(file_out, ...)

def second_code(file_in, file_out):
    with open(file_in, 'r') as f:
        ...
    ....

    with open(file_out, 'w') as f:
        ...

您的解决方案可以是:

first_code('data5.csv', 'output.csv')
second_code('output.csv', 'output.csv')

希望对你有帮助

<小时/>

注意,在同一个文件中读写没有问题。确保该文件之前已关闭以避免副作用。这是通过使用 with 隐式完成的,这是一个很好的实践

关于python - 将两个脚本合并为一个代码,用于 csv 文件数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42370877/

相关文章:

android - 在Android Studio中成功 "Rebuild Project"后执行Python脚本

python - Python中有计算百分比的运算符吗?

python - Windows 环境中的 sys.argv

python - 验证字符串输入并将其连接到列表

python - OpenCV将像素列表从一个图像复制到另一个图像

python - 使用 ephem 计算 "Solar Noon",转换为本地时间

python - 将 pandas 选定的列转换为 2D numpy 数组

python - 如何将 unicode 数字转换为整数?

python - 将数字保存到变量

python - 有什么方法可以使递归函数更快吗?