【发布时间】:2016-06-25 06:58:56
【问题描述】:
我正在通过多个 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 文件:
每个都有以下结构:
每个文件的“日”列最多读取 30 天。
我想输出一个如下所示的 csv 文件:
但显然包括所有月份的所有日子。
我的问题是我不知道每个分析中包含哪些月份,因此我想使用一个 for 循环,该循环使用一个包含该信息的列表来访问相关的 csv,计算平均温度然后保存它全部整合到一个 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
【问题讨论】:
-
为什么要先创建?确定在保存时从头开始创建等同于附加到已经存在的空 csv 吗?
-
因为在分组发生之前我不知道存在哪些 csv,所以我认为首先创建并填充存在的任何内容更容易。你会如何处理这个问题?
-
所以你想覆盖 'my_csv.csv' 文件
len(MonthsInAnalysis)次 - 这就是你想要的吗? ;-) -
好吧,不要覆盖,
for循环将运行len(MonthsInAnalysis)次,每次我得到一个新的 groupby 对象时,我都想将它附加到 csv 中。我认为这就是with open部分所取得的成果。 -
@PaulBarr,我想如果您多解释一下,对您的帮助会更容易 - 您的源数据是什么以及您想要实现什么(即输出应该是什么样子)。可能还有另一种更优雅的解决方案,您不需要制作任何循环......
标签: python csv pandas is-empty