#python #pandas
#python #pandas
Вопрос:
Файл CSV: Ссылка на Github
Это мой код:
import pandas as pd
df = pd.read_csv("log_1_2018_09_07.csv", encoding="ISO-8859-1", delimiter=';')
print(df.columns.tolist())
dates = []
times = []
outputs = []
for date in df.loc[:, "Datum"]:
dates.append(date)
print("date")
print(date)
for time in df.loc[:, " Zeit"]:
times.append(time)
print("time")
print(time)
for out in df.iloc[:, 19]:
print("output")
outputs.append(out)
print(out)
Он правильно считывает даты и время, но все 19-й столбец (столбец T) равен 0, а 6-е значение равно 990, однако pandas считывает его как 0, а 9-е значение как 1.
Кто-нибудь знает, почему он считывает неправильные значения?
Спасибо!!
Комментарии:
1. Привет, данные на github повреждены. Можете ли вы указать нам действительное значение?
2. Pandas прав. Я проверил ваши данные, и действительно, 6-е значение в столбце 19 равно 0, а 9-е значение в столбце 19 равно 1. (При подсчете столбцов вы должны начинать с 0.)
3. Спасибо, моя проблема заключалась в том, что я использовал LibreOffice Calc для просмотра данных, которые на самом деле показывали неправильные значения, поэтому значения pandas были правильными в конце концов.
Ответ №1:
import pandas as pd
url = 'https://raw.github.com/liamrisch/helper/master/log_1_2018_09_07.csv'
df = pd.read_csv(url, encoding="ISO-8859-1", delimiter=';')
df.iloc[:,[6,19]]
Выдает:
Teil 1-8 - Abstand Rasthaken MP1-MP2 Teil 1-8
0 26,764 0
1 26,787 0
2 26,792 0
3 26,788 0
4 26,771 0
5 999,990 0
6 26,786 0
7 26,785 0
8 26,780 1
9 26,783 0
10 26,798 0
Ответ №2:
внимательно посмотрите на данные, значение на самом деле такое, 1
но поскольку 999
требуется больше визуального пространства, создается иллюзия, что 999 является значением в этой ячейке.
печать df
в этом столбце (перед любой манипуляцией) показывает фактические значения этого столбца без каких-либо сюрпризов.