【发布时间】:2017-12-05 16:57:14
【问题描述】:
我有一个这样的数据框
Temp_in_C Temp_in_F Date Year Month Day
23 65 2011-12-12 2011 12 12
12 72 2011-12-12 2011 12 12
NaN 67 2011-12-12 2011 12 12
0 0 2011-12-12 2011 12 12
7 55 2011-12-13 2011 12 13
我正在尝试以这种格式获取输出(pertuculer 日的 NaN 和零值仅替换为当天的 avg temp) 输出将是
Temp_in_C Temp_in_F Date Year Month Day
23 65 2011-12-12 2011 12 12
12 72 2011-12-12 2011 12 12
17.5 67 2011-12-12 2011 12 12
17.5 68 2011-12-12 2011 12 12
7 55 2011-12-13 2011 12 13
这些山谷将被替换为那个特殊的日子。我正在尝试这样做
temp_df = csv_data_df[csv_data_df["Temp_in_C"]!=0]
temp_df["Temp_in_C"] =
temp_df["Temp_in_C"].replace('*',np.nan)
x=temp_df["Temp_in_C"].mean()
csv_data_df["Temp_in_C"]=csv_data_df["Temp_in_C"]
.replace(0.0,x)
csv_data_df["Temp_in_C"]=csv_data_df["Temp_in_C"]
.fillna(x)
此代码取整列的平均值并直接替换它。 我如何按天分组并取平均值,然后仅替换该特定日期的值。
【问题讨论】:
-
这不会导致数据损坏吗?例如,您的 17.5 C 最终与两个不同的华氏温度值相邻(两者都不正确;它们都应该是 63.5)。
-
@JohnZwinck 这些值不是计算出来的,我写它们只是为了理解我的问题。不是数据中的实际值。我只是想定义我的问题。我理想的情况下它们将是相同的
标签: python csv pandas numpy dataframe