gpt4 book ai didi

Python Pandas 将计算写入新的 Csv 文件

转载 作者:行者123 更新时间:2023-12-01 02:06:58 24 4
gpt4 key购买 nike

使用:Python 3.6、Pandas 0.22

我试图获取计算平均值的 DataFrame 的最后一行,并将其以特定格式写入新的 .csv 文件。

df2 = pd.read_csv("Data.csv")

gname = df2.groupby(['NAME'])

for NAME, NAME_df2 in gname:
df2['DATE'] = pd.to_datetime(df2['DATE'])
df2.groupby([df2.DATE.dt.month,'NAME'])['SNOW'].mean().sort_values().to_csv('avg.csv')

这是我想要的 avg.csv 文件的输出:

NAME   MONTH    AVERAGE
GRAND RAPIDS GERALD R FORD INTERNATIONAL AIRPORT, MI US January, 0.006451613

在我看来,逻辑应该是:

df2.groupby([df2.DATE.dt.month,'NAME'])['SNOW'].mean().sort_values().to_csv('avg.csv', columns = 'NAME', 'MONTH', 'AVERAGE')

我尝试在变量中创建月份和列标题“AVERAGE”以写入新文件,但这不起作用。我一直在搜索文档以测试更多内容,但找不到与此问题相关的任何内容。

或者尝试创建新列,但这不适用于将它们与“NAME”列链接:

df2 = df2.convert_objects(convert_numeric=True)
df['MONTH']='?'

最佳答案

(df
.assign(MONTH=df['DATE'].dt.strftime('%B')) # Use `%B` for full name of month
.groupby(['NAME', 'MONTH'], as_index=False)['SNOW']
.agg({'AVERAGE': 'mean'}) # Effectively renames the SNOW column to AVERAGE.
)

为了让月份按自然顺序排序,您可能需要使用 .strftime('(%m) %B') 这将导致 '(01) 一月', '(02 )二月'等

要将年份作为单独的列包含在内,您可以执行以下操作:

dates = pd.DatetimeIndex(df['DATE'])
(df
.assign(MONTH=dates.dt.strftime('%B'), # Use `%B` for full name of month
YEAR=dates.dt.strftime('%Y'))
.groupby(['NAME', 'YEAR', 'MONTH'], as_index=False)['SNOW']
.agg({'AVERAGE': 'mean'}) # Effectively renames the SNOW column to AVERAGE.
)

关于Python Pandas 将计算写入新的 Csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48959301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com