#python #pandas #datetimeindex
#python #панды #datetimeindex
Вопрос:
Я получил res = dataframe * dataframe['column']
с <class 'pandas.core.frame.DataFrame'>
для первого фрейма данных и <class 'pandas.core.series.Series'>
для dataframe['column']
И это выводит меня : res : 2020-08-17 05:00:00 2020-08-17 05:15:00 2020-08-17 05:30:00 ... dtime 2020-08-24 16:45:00 NaN NaN NaN ... 2020-08-24 16:30:00 NaN NaN NaN ... 2020-08-24 16:15:00 NaN NaN NaN ... 2020-08-24 16:00:00 NaN NaN NaN ... 2020-08-24 15:45:00 NaN NaN NaN ... ... 2020-08-17 06:00:00 NaN NaN NaN ... 2020-08-17 05:45:00 NaN NaN NaN ... 2020-08-17 05:30:00 NaN NaN NaN ... 2020-08-17 05:15:00 NaN NaN NaN ... 2020-08-17 05:00:00 NaN NaN NaN ...
Все, что я нахожу, говорит мне, что «*» должно давать мне : res : dtime 2020-08-24 16:45:00 floatValue 2020-08-24 16:30:00 floatValue 2020-08-24 16:15:00 floatValue 2020-08-24 16:00:00 floatValue 2020-08-24 15:45:00 floatValue ... 2020-08-17 06:00:00 floatValue 2020-08-17 05:45:00 floatValue 2020-08-17 05:30:00 floatValue 2020-08-17 05:15:00 floatValue 2020-08-17 05:00:00 floatValue
Я уверен, что мне чего-то не хватает, но я не могу найти, чего.
Редактировать :
import pandas
df = pandas.DataFrame({"angles": [0, 3, 4], "degrees": [360, 180, 360]}, index=["circle", "triangle", "rectangle"])
other = pandas.DataFrame({"angles": [0, 3, 4]}, index=["circle", "triangle", "rectangle"])
print("df * other :", df * other)
выдает мне :
df * other :
angles degrees
circle 0 NaN
triangle 9 NaN
rectangle 16 NaN
как и ожидалось. Так что, возможно, это связано с индексом DatetimeIndex.
Редактировать :
import pandas
df = pandas.DataFrame({'angles': [0, 3, 4], 'degrees': [360, 180, 360]}, index=['2020-08-17 05:30:00', '2020-08-17 05:15:00', '2020-08-17 05:00:00'])
other = pandas.DataFrame({'angles': [0, 3, 4]}, index=['2020-08-17 05:30:00', '2020-08-17 05:15:00', '2020-08-17 05:00:00'])
df.index = pandas.to_datetime(df.index, format='%Y-%m-%d %H:%M:%S')
other.index = pandas.to_datetime(other.index, format='%Y-%m-%d %H:%M:%S')
print("df * other :", df * other)
выдает :
df * other : angles degrees
2020-08-17 05:30:00 0 NaN
2020-08-17 05:15:00 9 NaN
2020-08-17 05:00:00 16 NaN
Так что это не DatetimeIndex.
Ответ №1:
в вашем небольшом примере вы умножаете df * df [т. Е. other ]. вы получите ту же проблему, если будете использовать df * df.angles [т.е. df * series ]
но в основной проблеме вы используете df * series. попробуйте использовать df * pd.DataFrame(df.col) .
в серии df *: он сравнивает по столбцам так же, как df.multiply (df.series, axis = 1), вы также можете попробовать df.multiply(df.series, axis = 0)