我有一个与此类似的数据文件(我的真实数据要大得多)
df_peter = pd.DataFrame({"height": [50,np.nan,65], "weight": [20,25,27]})
df_anna = pd.DataFrame({"height": [47,55,np.nan], "weight": [18,23,30]})
df = pd.DataFrame({"Name":["Peter", "Anna"], "Year":[2000, 2002], "Data":[df_peter, df_anna]})
df Name Year Data
0 Peter 2000 height weight 0 50.0 20 1 NaN ...
1 Anna 2002 height weight 0 47.0 18 1 55.0 ...我的最终目标是在Peter和Anna的身高列上使用.fillna(method = "ffill")函数,所以我需要一种方法来定位这两个高度列,这也是绘制数据的实用方法。
对一行使用.fillna(method = "ffill")很容易
df.loc[0,"Data"]["height"].fillna(method = "ffill")但是,对于这两行/所有行都不是那么容易,因为:df["Data"]["height"]不工作--实际上,我找到了一个解决方案,编写了这个问题:
df["Data"].apply(lambda x: x["height"].fillna(method = "ffill", inplace = True))但是,有没有办法做到这一点,而不应用和兰巴?
发布于 2022-11-12 21:11:18
作为另一种选择,您可以使用循环:
for i in range(0,len(df)):
df.loc[i,"Data"]["height"]=df.loc[i,"Data"]["height"].fillna(method = "ffill")https://stackoverflow.com/questions/74416342
复制相似问题