#python #pandas
#python #pandas
Вопрос:
В моем фрейме данных есть 6 столбцов дат, которые я хочу, чтобы они отображались в 1 столбце КАДРА ДАННЫХ ЗДЕСЬ
Код для создания другого столбца выглядит следующим образом
df['Mega'] = df['Mega'].append(df['RsWeeks','RsMonths','RsDays','PsWeeks','PsMonths','PsDays'])
я новичок в python и pandas, я хотел бы узнать больше, поэтому, пожалуйста, укажите мне источники, так как я действительно плохо разбираюсь в отладке, поскольку у меня нет опыта программирования.
Комментарии:
1. Когда вы говорите, что хотите превратить их в один столбец, вы имеете в виду, что вам нужен список дат в каждой ячейке или строка всех дат? Вы хотите, чтобы даты отображались как объекты datetime или строки?
2. мне нужен список дат в каждой ячейке, так как позже я захочу их отфильтровать, поэтому я хочу, чтобы все эти даты в 6 столбцах были объединены в 1 большой столбец для применения фильтра.
Ответ №1:
Документация Pandas — отличный источник хороших примеров. Нажмите здесь, чтобы перейти на страницу с большим количеством примеров и визуальных элементов.
Для вашего конкретного случая:
Мы создаем образец DataFrame
:
import pandas as pd
df = pd.DataFrame([
{"RsWeeks": "2015-11-10", "RsMonths": "2016-08-01"},
{"RsWeeks": "2015-11-11", "RsMonths": "2015-12-30"}
])
print("DataFrame preview:")
print(df)
Вывод:
DataFrame preview:
RsWeeks RsMonths
0 2015-11-10 2016-08-01
1 2015-11-11 2015-12-30
Мы объединяем столбцы RsWeeks
и RsMonths
для создания Series
:
my_series = pd.concat([df["RsWeeks"], df["RsMonths"]], ignore_index=True)
print("nSeries preview:")
print(my_series)
Вывод:
Series preview:
0 2015-11-10
1 2015-11-11
2 2016-08-01
3 2015-12-30
Редактировать
Если вам действительно нужно добавить новый Series
столбец в качестве столбца к вашему DataFrame
, вы можете сделать следующее:
df2 = pd.DataFrame({"Mega": my_series})
df = pd.concat([df, df2], axis=1)
print("nDataFrame preview:")
print(df)
Вывод:
DataFrame preview:
RsWeeks RsMonths Mega
0 2015-11-10 2016-08-01 2015-11-10
1 2015-11-11 2015-12-30 2015-11-11
2 NaN NaN 2016-08-01
3 NaN NaN 2015-12-30
Ответ №2:
Данные:
df = pd.DataFrame({"name" : 'Dav Las Oms'.split(),
'age' : [25, 50, 70]})
df['Name'] = list(['a', 'M', 'm'])
df:
name age Name
0 Dav 25 a
1 Las 50 M
2 Oms 70 m
df = pd.DataFrame(df.astype(str).apply('|'.join, axis=1))
df:
0
0 Dav|25|a
1 Las|50|M
2 Oms|70|m
Ответ №3:
Вы можете использовать pd.melt()
, который делает ваш фрейм данных от широкого до длинного:
df_reshaped = pd.melt(df, id_vars = ['id_1','id_2','id_3'], var_name = 'new_name', value_name = 'Mega')
Комментарии:
1. Разве не нужно добавлять
.str
после имен столбцов?2. Я всегда использую
.astype(str)
, будет ли это работать с just.str
?3. Благодаря этому все мои столбцы попадают в одну строку. но моя цель — преобразовать все эти столбцы в независимые строки, чтобы я получил около 24 строк. потому что я хочу позже запустить filter для этого мега столбца
4. Да, это то, что, как я думал, вам нужно. Каков ваш идеальный результат?
5. screencast.com/t/bD0iLMdl я хочу, чтобы мои столбцы выглядели так в конце, чтобы я мог использовать filter в этом последнем столбце 254 строк для фильтрации результатов