gpt4 book ai didi

python - 数据框缺失值显示在每行的末尾

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:31 25 4
gpt4 key购买 nike

我正在处理一个缺少值的数据集。数据集的头部如下所示:

1:0.2 2:0.7 3:-1.2 4:0.5
1:0.9 3:0.1 4:0.8
1:-0.1 2:0.1 4:1.0
2:0.6 3:-1.0

冒号前面的数字是特征的索引。正如我们在某些行中所看到的,缺少一些功能。因此,当我使用以下代码导入数据时,

df = pandas.read_csv('dataset',header=None,sep = '\s+|:',engine='python')

我得到的数据框看起来像这样:

    0       1       2       3       4       5       6       7
0 1.0 0.2 2.0 0.7 3.0 -1.2 4.0 0.5
1 1.0 0.9 3.0 0.1 4.0 0.8 NaN NaN
2 1.0 -0.1 2.0 0.1 4.0 1.0 NaN NaN
3 2.0 0.6 3.0 -1.0 NaN NaN NaN NaN

我想在正确的位置用 0 替换 NaN。但如果我使用 df.fillna(0),我将替换每行末尾的 NaN。我真正想要的是一个像这样的数据框,

    0       1       2       3       4       5       6       7
0 1.0 0.2 2.0 0.7 3.0 -1.2 4.0 0.5
1 1.0 0.9 0.0 0.0 3.0 0.1 4.0 0.8
2 1.0 -0.1 2.0 0.1 0.0 0.0 4.0 1.0
3 0.0 0.0 2.0 0.6 3.0 -1.0 0.0 0.0

最佳答案

您可以使用 csv 模块构建字典列表,然后将其提供给 pd.DataFrame 构造函数。最后,使用 fillna 将空值填充为 0

from io import StringIO
import csv
import pandas as pd

x = StringIO("""1:0.2 2:0.7 3:-1.2 4:0.5
1:0.9 3:0.1 4:0.8
1:-0.1 2:0.1 4:1.0
2:0.6 3:-1.0""")

# replace x with open('file.csv', 'r')
with x as fin:
L = [dict(i.split(':') for i in line) for line in csv.reader(fin, delimiter=' ')]

df = pd.DataFrame(L, dtype=float).fillna(0)

print(df)

1 2 3 4
0 0.2 0.7 -1.2 0.5
1 0.9 0.0 0.1 0.8
2 -0.1 0.1 0.0 1.0
3 0.0 0.6 -1.0 0.0

关于python - 数据框缺失值显示在每行的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53323259/

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