gpt4 book ai didi

python - 当行为 NaN 时获取 pandas 标题

转载 作者:行者123 更新时间:2023-11-28 20:31:41 24 4
gpt4 key购买 nike

我从传感器获取数据。并且在某个时期他们无缘无故地返回给我 blank string!

在数据清洗过程中。我可以设法使用此方法获取 NaN

df[df.isnull().values.any(axis=1)]

    Time    IL1 IL2 IL3 IN  kVA kW  kWh
12463 2018-09-17 10:30:00 63.7 78.4 53.3 25.2 NaN NaN 2039676.0
12464 2018-09-17 11:00:00 64.1 78.6 53.5 25.4 NaN NaN 2039698.0

如何从 DataFrame 中获取 kVA 和 kW
然后我可以从其他行中找到 kVA 和 KWmedian 并用它替换 NaN

我的用例:
现在我必须读取文件并找到 NaN 列的位置。这需要我的努力。所以我想通过替换列名称上的硬编码来自动化该过程。

trdb_a2_2018_df = pd.read_csv(PATH + 'dpm_trdb_a2_2018.csv', thousands=',', parse_dates=['Time'], date_parser=extract_dt)
trdb_a2_2018_df = trdb_a2_2018_df.replace(r'\s+', np.nan, regex=True)
median_kVA = trdb_a2_2018_df['kVA'].median()
trdb_a2_2018_df = trdb_a2_2018_df['kVA'].fillna(median_kVA)

最佳答案

我相信你需要fillna使用中位数:

df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,4,5,5,np.nan],
'C':[7,np.nan,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
})

print (df)
A B C D E F
0 a 4.0 7.0 1 5 a
1 b 5.0 NaN 3 3 a
2 c 4.0 9.0 5 6 a
3 d 5.0 4.0 7 9 b
4 e 5.0 2.0 1 2 b
5 f NaN 3.0 0 4 b

df1 = df.fillna(df.median())
print (df1)
A B C D E F
0 a 4.0 7.0 1 5 a
1 b 5.0 4.0 3 3 a
2 c 4.0 9.0 5 6 a
3 d 5.0 4.0 7 9 b
4 e 5.0 2.0 1 2 b
5 f 5.0 3.0 0 4 b

如果还想在列中拟合 NaN:

m = df.isnull().any()
df.loc[:, m] = df.loc[:, m].fillna(df.loc[:, m].median())

备选方案:

cols = df.columns[df.isnull().any()]
df[cols] = df[cols].fillna(df[cols].median())

详细信息:

print (df.median())
B 5.0
C 4.0
D 2.0
E 4.5
dtype: float64

关于python - 当行为 NaN 时获取 pandas 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53882610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com