我正在通过一些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
5条答案
按热度按时间kqlmhetl1#
只需在写入模式下打开文件即可创建它。
无论如何,我认为你不应该打开和关闭文件这么多次。你最好打开文件一次,写几次。
v2g6jxz62#
创建一个空的csv文件就像下面这样简单
gwbalxhn3#
我会这样做:首先将所有CSV文件(但仅限于您真正需要的列)读入一个DF,然后生成
groupby(['Year','Month','Day']).mean()
并将生成的DF保存到CSV文件中:如果要忽略年份:
一些细节:
将从所有CSV文件生成 Dataframe 元组
将它们连接成一个DF
将生成所需的报告作为 Dataframe ,该 Dataframe 可保存到新的CSV文件中:
9njqaruj4#
这个问题有点不清楚,但是假设你必须逐月迭代,并按规定应用groupby,只需用途:
然后在每个循环中执行以下操作:
然后在结尾处:
这将把所有数据加入一个 Dataframe 。
再看:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html
http://pandas.pydata.org/pandas-docs/stable/merging.html
7nbnzgx95#
您可以这样做来创建一个空的CSV,并添加没有索引列的列。