txt 到 python 中具有相同大小行的数组或数据框
txt to array or data frame in python with same size rows
我正在使用 python 和 numpy!我有一个包含整数的 txt 文件,space 分隔,文件的每一行必须是数组或数据框中的一行。问题是不是每一行都有相同的大小!我知道我希望他们拥有的大小,我想将数字零放入缺失值中!由于不是逗号分隔,我找不到办法做到这一点!我想知道是否有办法找到数组每一行的长度并添加适当数量的零!那可能吗?还有其他想法吗?如您所见,我是 numpy 库的新手..
您知道数据中的列数,这可以使用 pandas read_csv 来完成。如果 'test.txt' 是您要读取的文件:
df = pd.read_csv("test.txt", sep=" ", names=["col1", "col2", "col3", "col4", "col5"])
df.fillna(0, inplace=True)
print(df)
col1 col2 col3 col4 col5
0 1 2 3 4.0 NaN
1 1 2 3 NaN NaN
2 1 2 3 4.0 5.0
我已将列命名为 'colX',但您当然可以放任何您喜欢的东西。
如果你想从这里获取numpy数组,你可以调用df.values
:
array([[1., 2., 3., 4., 0.],
[1., 2., 3., 0., 0.],
[1., 2., 3., 4., 5.]])
由于问题不包含太多细节,但假设文本文件看起来像
3 4 12 7 9
3 4 8 7
9 9
1 2 3
因此,在文件中,连续的空格表示缺失值。
有问题,如果可以添加示例文本文件,那么,解决方案可以更具体。
基于假设,这是一个可能的解决方案
import numpy as np
import pandas as pd
with open(r"path\to\the\text\file\file.txt", "r") as f:
val = np.array([[int(y) if y!="" else 0 for y in x.split(" ")] for x in f.read().split("\n")])
df = pd.DataFrame(val)
我正在使用 python 和 numpy!我有一个包含整数的 txt 文件,space 分隔,文件的每一行必须是数组或数据框中的一行。问题是不是每一行都有相同的大小!我知道我希望他们拥有的大小,我想将数字零放入缺失值中!由于不是逗号分隔,我找不到办法做到这一点!我想知道是否有办法找到数组每一行的长度并添加适当数量的零!那可能吗?还有其他想法吗?如您所见,我是 numpy 库的新手..
您知道数据中的列数,这可以使用 pandas read_csv 来完成。如果 'test.txt' 是您要读取的文件:
df = pd.read_csv("test.txt", sep=" ", names=["col1", "col2", "col3", "col4", "col5"])
df.fillna(0, inplace=True)
print(df)
col1 col2 col3 col4 col5
0 1 2 3 4.0 NaN
1 1 2 3 NaN NaN
2 1 2 3 4.0 5.0
我已将列命名为 'colX',但您当然可以放任何您喜欢的东西。
如果你想从这里获取numpy数组,你可以调用df.values
:
array([[1., 2., 3., 4., 0.],
[1., 2., 3., 0., 0.],
[1., 2., 3., 4., 5.]])
由于问题不包含太多细节,但假设文本文件看起来像
3 4 12 7 9
3 4 8 7
9 9
1 2 3
因此,在文件中,连续的空格表示缺失值。
有问题,如果可以添加示例文本文件,那么,解决方案可以更具体。
基于假设,这是一个可能的解决方案
import numpy as np
import pandas as pd
with open(r"path\to\the\text\file\file.txt", "r") as f:
val = np.array([[int(y) if y!="" else 0 for y in x.split(" ")] for x in f.read().split("\n")])
df = pd.DataFrame(val)