python - 用 Pandas 创建空的 csv 文件

标签 python csv pandas is-empty

我正在通过多个 csv 文件进行交互,并希望将平均温度附加到一个空白的 csv 文件中。如何使用 pandas 创建一个空的 csv 文件?

for EachMonth in MonthsInAnalysis:
    TheCurrentMonth = pd.read_csv('MonthlyDataSplit/Day/Day%s.csv' % EachMonth)
    MeanDailyTemperaturesForCurrentMonth = TheCurrentMonth.groupby('Day')['AirTemperature'].mean().reset_index(name='MeanDailyAirTemperature')
    with open('my_csv.csv', 'a') as f:
        df.to_csv(f, header=False)

那么在上面的代码中,我如何在 for 循环之前创建 my_csv.csv

请注意,我知道您可以创建一个数据框,然后将数据框保存到 csv,但我想知道您是否可以跳过这一步。

就上下文而言,我有以下 csv 文件:

enter image description here

每一个都有以下结构:

enter image description here

对于每个文件,天列最多显示 30 天。

我想输出一个如下所示的 csv 文件:

enter image description here

但显然包括所有月份的所有日期。

我的问题是我不知道每个分析中包含哪些月份,因此我想使用一个 for 循环,该循环使用一个包含该信息的列表来访问相关的 csvs,计算平均温度然后保存它全部放入一个 csv。

作为文本输入:

    Unnamed: 0  AirTemperature  AirHumidity SoilTemperature SoilMoisture    LightIntensity  WindSpeed   Year    Month   Day Hour    Minute  Second  TimeStamp   MonthCategorical    TimeOfDay
6   6   18  84  17  41  40  4   2016    1   1   6   1   1   10106   January Day
7   7   20  88  22  92  31  0   2016    1   1   7   1   1   10107   January Day
8   8   23  1   22  59  3   0   2016    1   1   8   1   1   10108   January Day
9   9   23  3   22  72  41  4   2016    1   1   9   1   1   10109   January Day
10  10  24  63  23  83  85  0   2016    1   1   10  1   1   10110   January Day
11  11  29  73  27  50  1   4   2016    1   1   11  1   1   10111   January Day

最佳答案

只需以写入模式打开文件即可创建它。

with open('my_csv.csv', 'w'):
    pass

无论如何,我认为您不应该多次打开和关闭文件。你最好打开一次文件,多写几次。

with open('my_csv.csv', 'w') as f:
    for EachMonth in MonthsInAnalysis:
        TheCurrentMonth = pd.read_csv('MonthlyDataSplit/Day/Day%s.csv' % EachMonth)
        MeanDailyTemperaturesForCurrentMonth = TheCurrentMonth.groupby('Day')['AirTemperature'].mean().reset_index(name='MeanDailyAirTemperature')
        df.to_csv(f, header=False)

关于python - 用 Pandas 创建空的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35916378/

相关文章:

python - 如何删除列中的特殊字符并将列转换为 float ?

python - 从 Python/Pandas Dataframe 的列表列中的列表中删除空格或 NaN

python - CPython内存分配

php - 我们如何在 PHP 生成的 CSV 文件上添加空格?

python - 如何获取行中的特定列(csv)

ruby-on-rails - 将 CSV 文件解析为 Rails 数据库

python - 在 Pandas Python 中合并时如何避免笛卡尔

python - 在 ply 的正则表达式中匹配 unicode

python - 如何在不拆分数据帧的情况下传递不同的数据集进行训练和测试。 (Python)?

python - 有没有办法以原子方式删除和重新创建 Elasticsearch 别名?