У объекта 'numpy.int64' нет атрибута 'loc' - PullRequest
1 голос
/ 15 октября 2019

У меня есть CSV-файл с датой и двумя входными значениями. Здесь мне нужно прочитать дату со значением, содержащимся в первом столбце. здесь я использовал код, и он выдал мне эту ошибку: «У объекта« numpy.int64 »нет атрибута« loc »»

Вот мой код:

data = pd.read_csv("data6.csv")

data['date']= pd.to_datetime(data['date'] + " " + data['time'].str.strip(), format='%d/%m/%Y %H:%M:%S')

filtered = data['X']
current_X = filtered.iloc[0]
current_time = filtered.iloc[0].loc['date']

Ошибка:

AttributeError                            Traceback (most recent call last)
<ipython-input-24-b3a8e880770f> in <module>()
      1 filtered = data['x']
      2 current_x = filtered.iloc[0]
----> 3 current_time = filtered.iloc[0].loc['date']

AttributeError: 'numpy.int64' object has no attribute 'loc'

мой CSV-файл:

date	      time	 x   x1
8/6/2018	6:15:00	 141	     0
8/6/2018	6:45:00	 0	     20
8/6/2018	7:45:00  0    	     0
8/6/2018	9:00:00	 0	     0
8/6/2018	9:25:00	 95	     30
8/6/2018	9:30:00	 0	     0
8/6/2018	11:00:00 149	     0
8/6/2018	11:30:00 0	     0
8/6/2018	13:30:00 0	     40
8/6/2018	13:50:00 85	     0
8/6/2018	15:00:00 0	     0
8/6/2018	15:25:00 0	     0

1 Ответ

1 голос
/ 15 октября 2019

Есть 2 возможных решения - выберите по позициям с помощью Index.get_loc для позиции по столбцу date с DataFrame.iloc:

current_time = data.iloc[0, data.columns.get_loc('date')]

Илиполучить метку первого значения индекса и выбрать DataFrame.loc:

current_time = data.loc[data.index[0], 'date']

Если есть значение по умолчанию RangeIndex:

current_time = data.loc[0, 'date']

Ваше решение не работает, потому что:

#returned Series
filtered = data['X']
#returned first value of Series - scalar
current_X = filtered.iloc[0]
#error
current_time = filtered.iloc[0].loc['date']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...