内容 - df.where() - NaN转换为None
NaN转None
import numpy as np
import pandas as pd
df = pd.DataFrame(data=[{"A":"one", "B":"a", "C":11}, {"A":"two", "B":np.NaN, "C":22}, {"A":"one", "B":1, "C":12}])
|
A |
B |
C |
0 |
one |
a |
11 |
1 |
two |
NaN |
22 |
2 |
one |
1 |
12 |
## 将非空数据保留,空数据用None替换
df = df.where(df.notnull(), None)
print(df)
|
A |
B |
C |
0 |
one |
a |
11 |
1 |
two |
None |
22 |
2 |
one |
1 |
12 |
## 将非空数据保留,空数据用0替换
df = df.where(df.notnull(), 0)
print(df)
|
A |
B |
C |
0 |
one |
a |
11 |
1 |
two |
0 |
22 |
2 |
one |
1 |
12 |
NaT转0days
import numpy as np
import pandas as pd
df = pd.DataFrame(data=[
{"A":"one", "B":pd.Timedelta(0,unit="s"), "C":11},
{"A":"two", "B":pd.NaT, "C":22},
{"A":"one", "B":pd.Timedelta(0,unit="s"), "C":12}])
|
A |
B |
C |
0 |
one |
0 days |
11 |
1 |
two |
NaT |
22 |
2 |
one |
0 days |
12 |
# 将非空数据保留,空数据用0替换
df = df.where(df.notnull(), pd.Timedelta(0,unit="s"))
df["B"] = df["B"].where(df["B"].notnull(), pd.Timedelta(0,unit="s"))
print(df)
|
A |
B |
C |
0 |
one |
0 days |
11 |
1 |
two |
0 days |
22 |
2 |
one |
0 days |
12 |