使用有关起点和终点的 DataFrame,类似于 Uber 应用程序。
它给了我一个包含 2 列的 DataFrame,其中有很多 NaN 值:其中一些是 NaN,其他是写为“nan”的字符串类型。它的编写方式的一个例子可能是这样的:
data = [
["Sevilla","Granada"],
["nan","Madrid"],
["Burgos",NaN],
["Badajoz","Valencia"],
[NaN,NaN],
[NaN,"nan"],
[NaN,"Barcelona"]
]
df = pd.DataFrame(
data,
columns=["start_station_name", "end_station_name"],
)
print(df)
所以你应该消除“nan”和NaN。主要问题是,当我使用 .dropna(inplace=True) 时,它会消除所有值并显示 None,我如何保留好的值?
我尝试过以下方法。
首先,我用 NotaNumbers 替换了所有“nan”,不是 NaN 值。 其次,我删除了所有 NaN 值,同时保留城市名称。
df["start_station_name"] = df["start_station_name"].replace("nan",np.nan)
df["end_station_name"] = df["end_station_name"].replace("nan",np.nan)
df["start_station_name"] = df["start_station_name"].dropna(inplace=True)
df["end_station_name"] = df["end_station_name"].dropna(inplace=True)
print(df[["start_station_name","end_station_name"]])
它只显示无(所以所有值都是无)
您可能想将
replace('nan', float('nan')
和 dropna
与 how='all'
结合起来:
out = df.replace('nan', float('nan')).dropna(how='all')
输出:
start_station_name end_station_name
0 Sevilla Granada
1 NaN Madrid
2 Burgos NaN
3 Badajoz Valencia
6 NaN Barcelona