0
在M *(N + 1)以填充大熊貓數據幀的缺失值大熊貓數據幀data_df
,有一個timestamp
列,其值可能重複整數在range(0,p)
(其表示時間;有總共p個唯一值)並且沒有缺失值。還有其他列data_1
,data_2
,data_3
,... data_n
,每個列都有一些缺失值。快速的方式與複雜的規則
我想填補數據列的每一行中的缺失值,使用與該行的timestamp
值相關的特定數字。因此,我獲得了p * n熊貓數據框median_table
。 median_table
的第i行上的值用於填充其timestamp
是i的data_df
中的缺失值。
但是,我不能想出一個快速和內存友好的方式來做到這一點。目前,我使用下面的代碼(median_table
data_df
和已定義):
new_data_df = pd.DataFrame()
for _timestamp in median_table.timestamp:
temp_df = data_df.loc[data_df.timestamp == _timestamp]
temp_df.fillna(median_table.loc[_timestamp, :], inplace=True)
new_data_df = new_data_df.append(temp_df)
這是非常低效的。另一種算法:
for _timestamp in median_table.timestamp:
data_df.loc[data_df.timestamp == _timestamp] = \
data_df.loc[data_df.timestamp == _timestamp]\
.fillna(median_table.loc[_timestamp, :], inplace=False)
對我來說工作速度相當慢。
有沒有更快的方法來做同樣的事情?
謝謝!但是,我剛剛意識到使用'DataFrame.groupby()'方法而不是在開始時創建新的中值表可能非常有效。 –