【发布时间】:2022-11-02 23:29:54
【问题描述】:
我目前正在尝试在如下所示的数据框中填充空白:
AL|ATFC|Year Latitude Longitude
0 AL011851 NaN NaN
1 NaN 28.0N 94.8W
2 NaN 28.0N 95.4W
3 NaN 28.0N 96.0W
4 NaN 28.1N 96.5W
5 NaN 28.2N 96.8W
6 NaN 28.2N 97.0W
7 NaN 28.3N 97.6W
8 NaN 28.4N 98.3W
9 NaN 28.6N 98.9W
10 NaN 29.0N 99.4W
11 NaN 29.5N 99.8W
12 NaN 30.0N 100.0W
13 NaN 30.5N 100.1W
14 NaN 31.0N 100.2W
15 AL021851 NaN NaN
16 NaN 22.2N 97.6W
17 AL031851 NaN NaN
18 NaN 12.0N 60.0W
我一直在尝试下面的代码行,目的是用 pandas ffill() 函数填充我有 NaN 值的 AL|ATFC|Year 列。
df.where(df['AL|ATFC|Year'] == float('NaN'), df['AL|ATFC|Year'].ffill(), axis=1, inplace=True)
获取以下数据框:
AL|ATFC|Year Latitude Longitude
0 AL011851 NaN NaN
1 AL011851 28.0N 94.8W
2 AL011851 28.0N 95.4W
3 AL011851 28.0N 96.0W
4 AL011851 28.1N 96.5W
5 AL011851 28.2N 96.8W
6 AL011851 28.2N 97.0W
7 AL011851 28.3N 97.6W
8 AL011851 28.4N 98.3W
9 AL011851 28.6N 98.9W
10 AL011851 29.0N 99.4W
11 AL011851 29.5N 99.8W
12 AL011851 30.0N 100.0W
13 AL011851 30.5N 100.1W
14 AL011851 31.0N 100.2W
15 AL021851 NaN NaN
16 AL021851 22.2N 97.6W
17 AL031851 NaN NaN
18 AL031851 12.0N 60.0W
此后,我正在计划丢失 Lon/Lat 值的放置行。但是,我一直在尝试使用的代码无法填充AL|ATFC|Year 列中的缺失值,我不明白为什么......任何帮助将不胜感激!
谢谢
【问题讨论】:
-
您可以将 DF 作为代码共享吗? NaN 是浮点数,它可能会转换为字符串,因为值是字母数字。
-
数据框实际上要大得多,并从 csv 读取。我可以确认 NaN 值是浮点数,
AL|ATFC|Year中的现有值是字符串。 -
从您的示例创建 DF,它对我有用。检查有效值之后的第一个空值类型。类型(df['AL|ATFC|Year'].iloc[1])
标签: python pandas dataframe nan ffill