Я делаю это для домашней работы.Преобразование столбца данных из года в год, год год
Моя цель состоит в том, чтобы иметь совершенно новую колонку только с прошедшими днями. Есть 500 000 строк этого ... так что моя цель состоит в том, чтобы:
- В кадре данных Pandas у меня есть эти два столбца даты, которые находятся в разных форматах. Я бы хотел вычесть эти два столбца, а затем создать новый столбец «Истекший день», который является простым целым списком.
- Выход в новый CSV (этот код делается)
- Теперь я могу полностью избежать парсинга дат каждый раз, когда я перерабатываю код/читаю CSV, потому что он сходит с ума и замедляет мою работу.
Я пытаюсь преобразовать это:
Yearmade Saledate
0 2004 11/16/2006 0:00
1 1996 3/26/2004 0:00
2 2001 2/26/2004 0:00
В:
Days Elapsed
0 1050
1 3007
2 1151
Текущая попытка:
year_mean = df[df['YearMade'] > 1000]['YearMade'].mean()
df.loc[df['YearMade'] == 1000, 'YearMade'] = year_mean
## There's lots of erroneous data of the year 1000, so replacing all of them with the mean of the column (mean of column without error data, that is)
df['Yearmade'] = "1/1/"+df['YearMade'].astype(str)
## This is where it errors out.
df['Yearmade'] = pd.to_datetime(df['Yearmade'])
df['Saledate'] = pd.to_datetime(df['Saledate'])
df['Age_at_Sale'] = df['Saledate'].sub(df['Yearmade'])
df = df.drop(['Saledate', 'Yearmade'], axis=1)
[then there's another class method to convert the current df into csv]
Я предполагаю, что вы знаете, но CSV очень медленно и неэффективно (хранение мудро) по сравнению с различными форматами двоичных (HDF и т.д.) Панды имеют множество вариантов: HTTP: // pandas.pydata.org/pandas-docs/stable/io.html – JohnE
Только что начал изучать панды/CSV на этой неделе - теперь узнайте о HDF с вашей ссылкой! – jhub1
@JohnE Мне нужно сделать много печати, чтобы подтвердить, правильно ли я очищаю данные. Было бы целесообразно преобразовать большой CSV в HDF ... сначала, а затем начать спорить? – jhub1