Обновлять:
У меня есть фреймворк pandas, построенный с использованием функции (value_counts). Вывод имеет заголовок из двух столбцов с метками Безымянный: 0, Безымянный: 1.
Ниже представлен вид Dataframe:
Unnamed:0,Unnammed:1
Drop less than 1%,3
Drop less than 2%,5
Drop less than 3%,2
Ниже приведен код, который я использовал для создания этого фрейма данных:
Output1.groupby(['Status']).agg(lambda x: x.mad())
Output1 = Output1.replace(np.nan, '', regex=True)
SumMail = pd.DataFrame(pd.value_counts(Output1['Status']).sort_index())
SumMail.rename(columns=lambda x: x[10:], inplace=True)
Может ли кто-нибудь посоветовать, как я могу иметь эти заголовки с меткой. Спасибо.
Спасибо..
Каковы ваши входные данные выборки?
@jezrael, ниже представлен вид фрейма данных Output1, Status 0, ABC, Drop меньше 1% 1, DEF, Drop меньше 1% 2, KLM, Drop меньше 2% 3, XYZ, Drop меньше 3 %
Вы можете проверить ответ?






Я считаю, что нужно:
Output1 = pd.DataFrame({'Status': ['Drop less than 1%',
'Drop less than 1%',
np.nan,
'Drop less than 2%',
'Drop less than 2%',
'Drop less than 3%']})
print (Output1)
Status
0 Drop less than 1%
1 Drop less than 1%
2 NaN
3 Drop less than 2%
4 Drop less than 2%
5 Drop less than 3%
Output1 = Output1.replace(np.nan, '', regex=True)
SumMail = (Output1['Status'].value_counts()
.sort_index()
.head(10)
.rename_axis('a')
.reset_index(name='b'))
print (SumMail)
a b
0 1
1 Drop less than 1% 2
2 Drop less than 2% 2
3 Drop less than 3% 1
Привет, @jezrael, большое спасибо, это сработало отлично, в соответствии с тем, что я искал. Однако извлеченный Dataframe имеет следующую структуру: Безымянный: 0, a, b 0,0, падение менее 1%, 1 1,1, падение менее 2%, 2 2,2, падение менее 3%, 2 может пожалуйста, помогите удалить этот столбец с пометкой Безымянный: 0 Я попробовал функцию ниже, чтобы удалить этот столбец SumMail.drop (SumMail.columns [[0]], axis = 1, inplace = True). Он удалил столбец состояния, а не Безымянный: 0 столбец.
<class 'pandas.core.frame.DataFrame'> RangeIndex: 8 записей, от 0 до 7 столбцов данных (всего 2 столбца): 8 ненулевых объектов b 8 ненулевых типов int64 dtypes: int64 (1), объект (1 ) использование памяти: 208,0+ байт Нет
Хорошо, попробуйте df = df.rename_axis(None) или df = df.rename_axis(None, axis=1)
и если также необходимо создать индекс по умолчанию, используйте df = df.reset_index(drop=True)
попробовали все три варианта, но столбец без имени: 0 все еще отображается в фрейме данных ..
Что такое print (df.columns.tolist())?
Это возвращает только два столбца, как показано ниже: ['a', 'b'] Но когда я сохраняю Dataframe и использую его в почте, я вижу этот дополнительный столбец ..
@Taukheer - Я понятия не имею, я думаю, что если использовать мой код, все должно быть в порядке. Или есть 2 разных DataFrames?
У меня есть один Dataframe, но с его помощью создайте два файла csv. Один содержит полные необработанные данные, а другой - сводные данные по разным категориям. В любом случае спасибо за помощь в создании столбца, который был важнее, чем этот дополнительный безымянный столбец.
@Taukheer, так что теперь нет проблем с безымянным столбцом?
Это все еще часть добычи, поскольку вы сказали, что не имеете никакого другого представления, я хотел бы поблагодарить вас за вашу помощь :)
@Taukheer - У меня есть идея - Вы можете проверить print (df.index.name), print (df.columns.name), print (df.columns.tolist()) и print (df.index) на предмет проблемных DataFrame?
Я запустил коды для обоих фреймов данных. Прилагается вывод для первого фрейма данных. Должен добавить вывод для второго фрейма данных в следующий комментарий из-за нехватки места. Я запустил 4 кода для обоих фреймов данных, и они вернулись, как показано ниже: print (SumMail.index.name) - None print (SumMail.columns. имя) - Нет print (SumMail.columns.tolist ()) - ['a', 'b'] print (SumMail.index) - RangeIndex (start = 0, stop = 8, step = 1)
Вывод для второго фрейма данных ... print (Output1.index.name) - None print (Output1.columns.name) - None print (Output1.columns.tolist ()) - ['Status'] print (Output1 .index) - Int64Index ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 281, 282, 283, 284, 285, 286, 287, 288, 289, 290 ], dtype = 'int64', length = 291) Надеюсь, это поможет
@Taukheer, так что все нормально работает? Можете ли вы добавить вывод dataframe или csv, где находится Unnamed:0. Может, мы плохо понимаем друг друга. Спасибо.
Я отредактировал свое первое сообщение с учетом Dataframe.
Спасибо @jezrael за исправление. Используется ниже для удаления безымянного столбца: 0 df = pd.read_csv ('DF_csv.csv', index_col = [0])
df.columns = ['a','b']должен работать.