преобразовать pandas строковый кадр данных в int в python - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть текстовый файл с 3 строками:

1,2,3
1,2,4
1,2,5
import pandas as pd
import numpy as np
df= pd.read_fwf("sample.txt",header =None)
df= df.to_numpy()
print("df:",df)

выполнение моего кода дает мне результат df: [['1,2,3'] ['1,2, 4 '] [' 1,2,5 ']]

как преобразовать его в целые числа? я хочу, чтобы вывод был:

[[1,2,3] [1,2,4] [1,2,5]]

Ответы [ 3 ]

0 голосов
/ 04 апреля 2020
import pandas as pd
import numpy as np

df = pd.read_table("sample.txt", sep = ',', header = None)
df = df.to_numpy()
df=np.copy(df)
df=df.tolist()

print("df:",df)

Выход:

[[1, 2, 3]
 [1, 2, 4]
 [1, 2, 5]]
0 голосов
/ 04 апреля 2020
import re
df = [[int(value) for value in re.findall('\d+',each[0])] for each in df]

Объяснение:

Используя понимание вложенного списка, мы получаем доступ к каждому списку, используя «каждый». Принимая 1-й элемент только потому, что каждый список состоит из одного элемента, то есть строки типа '1,2,3', используя регулярное выражение, найдите все имеющиеся цифры и сохраните их как список списков в 'df'

0 голосов
/ 04 апреля 2020

Вы можете использовать метод read_table вместо read_fwf, который будет анализировать входные данные как целые числа для вас, например, так:

import pandas as pd
import numpy as np

df = pd.read_table("sample.txt", sep = ',', header = None)
df = df.to_numpy()

Вывод:

[[1, 2, 3]
 [1, 2, 4]
 [1, 2, 5]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...