pandas- все статьи тега ➜ страница 3


Группировка дат по 5 минутным периодам независимо от дня

У меня есть фрейм данных с данными, похожими на следующие import pandas as pd; import numpy as np; import datetime; from datetime import timedelta; df = pd.DataFrame(index=pd.date_range(start='20160102', end='20170301', freq='5min')) df['value'] = np.random.randn(df.index.size) df.index += pd.Series([timedelta(seconds=np.random.randint(-60, 60)) for _ in range(df.index.size)]) Который выглядит так In[37]: df Out[37]: value 2016-01-02 00:00: ...

Проверьте, начинаются ли ячейки столбца с определенной строки [Pandas]

Прежде всего, спасибо, что нашли время прочитать это. Я импортировал данные из csv в таблицу в Pandas. Я хочу создать новый столбец и заполнить его различными числами, которые будут зависеть от строки внутри другого столбца. Итак, если первый столбец имеет вид: Column1 Horse1 Horse2 Chicken3 Chiken4 Chicken5 Cow6 Horse7 Cow8 Cow9 Я хочу сделать новый столбец, поэтому он будет просто рассматривать имя животного первого и давать ему номер: Column1 Column2 Horse1 ...

Преобразование матрицы numpy для панды фрейма данных или серии подряд

У меня есть матрица numpy, и я хотел бы преобразовать ее в фрейм/серию данных pandas. Пример: m = np.array([[1, 2], [11, 22]]) Что привело бы к a 0 [1, 2] 1 [11, 22] ...

Pandas dataframe: группируйте по столбцу и пусть дубликаты этого столбца занимают несколько строк

У меня есть фрейм данных, и я хотел бы сгруппировать элементы по одному из столбцов, и там, где эти столбцы имеют идентичные элементы, я хотел бы сделать их одним большим элементом (охватывающим несколько строк). Наконец, мне нужно сделать его в коде latex. Скажем, у меня есть что-то вроде import pandas as pd import random table=pd.DataFrame({'a':[1,2,2,2,3,6,6],'b':[-6,-4,-3,-1,0,-1,-2],'c':random.sample(xrange(30), 7)},index=range(7)) Предоставление фрейма данных | | a | b | c | ----- ...

Сортировка двумерных фреймов данных с помощью панд

У меня есть двумерный фрейм данных, для простоты он выглядит так: df = pd.DataFrame([(1,2.2,5),(2,3,-1)], index=['row1', 'row2'], columns = ["col1","col2",'col3']) С выходом: col1 col2 col3 row1 1 2.2 5 row2 2 3.0 -1 Какой лучший способ упорядочить его по значениям, чтобы получить: RowName ColName Value row2 col3 -1 row1 col1 1 row2 col1 2 row1 col2 2.2 row2 col2 3.0 row1 col3 5 Я пробовал использовать ...

Сохранение больших панд dataframe в excel

Я создаю большой фрейм данных (1,5 ГБ при сохранении в формате CSV)и должен хранить его в виде листа файла Excel вместе со вторым (гораздо меньшим) фреймом данных, который сохраняется в отдельном листе. print('Reading temporaty files for variable {}:'.format(Var)) print(' Reading stations') s=pd.read_csv(StatFile,sep=':',dtype={'ID': 'str'},encoding='utf-8') print(' Reading data') d=pd.read_csv(DataFile,sep=':',dtype='str',encoding='utf-8').transpose() d.columns = d.iloc[0] d=d[1:].astype('floa ...

Замена запредельных (комплексных) значений в фрейме данных pandas

(Python 2.7, pandas 0.13.0) Фон: я читаю кучу данных из CSV-файла и загружаю их в фрейм данных pandas. Некоторые данные являются сложными (я преобразую их из строк при загрузке). Некоторые из значений были погрешностями оборудования, отличающимися тем, что они слишком велики. Я хочу заменить все значения, величина которых превышает определенный порог, на np.бабушка. Это легко с массивом numpy (при условии, что вы используете "сложный nan", как показано на рисунке), но было сложно в pandas ...

Перегруппировать значения столбцов в Panda df

У меня есть script, который присваивает значение, основанное на двух columns в a pandas df. Приведенный ниже код способен реализовать 1-й шаг, но я борюсь со вторым. Поэтому сценарий должен изначально: 1) назначить Person для каждого отдельного string в [Area] и первый 3 unique values в [Place] 2) Смотрите, чтобы переназначить People с меньшим, чем 3 unique values пример. df ниже имеют 6 unique values в [Area] и [Place]. Но назначены 3 People. В идеале, 2 люди будут 2 unique values каждый ...

Панды читают fwf: укажите dtype

Я читаю в огромном текстовом файле фиксированной ширины кусками и экспортирую данные как csv. Потому что панды.read_fwf не позволяет указывать типы dtypes, я интересно, как еще можно заставить столбцы быть строками. То причина в том, что панды выводят некоторые столбцы как плавающие, даже если они не являются и Я не хочу .0 внутри столбца. Использование data[column] = data[column].astype(str) не поможет, так как не получит избавиться от дробей. преобразование столбцов float64 dtype в int не раб ...

Скользящее окно по списку списков в Python

Я пытаюсь использовать numpy/pandas для построения компаратора стиля скользящего окна. У меня есть список списков, каждый из которых имеет разную длину. Я хочу сравнить каждый список с другим списком, как показано ниже: lists = [[10,15,5],[5,10],[5]] window_diff(l[1],l[0]) = 25 Окно diff для списков [0] и списков[1] дал бы 25, используя следующую технику скольжения окна, показанную на рисунке ниже. Потому что списки[1] это более короткий путь, мы сдвигаем его один раз вправо, в результате ч ...

фрейм данных pandas с заголовком в 2 строки и экспортом в csv

У меня есть фрейм данных df = pd.DataFrame(columns = ["AA", "BB", "CC"]) df.loc[0]= ["a", "b", "c1"] df.loc[1]= ["a", "b", "c2"] df.loc[2]= ["a", "b", "c3"] Мне нужно добавить строку secod в заголовок df.columns = pd.MultiIndex.from_tuples(zip(df.columns, ["DD", "EE", "FF"])) Мой df теперь AA BB CC DD EE FF 0 a b c1 1 a b c2 2 a b c3 Но когда я пишу этот фрейм данных в csv-файл df.to_csv("test.csv", index = False) Я получаю на одну строку больше, чем ожидалось AA ...

Pandas-замена значений в фрейме данных на основе логического фрейма данных

Я использую Pandas v0. 20. 2, и у меня есть фрейм данных, такой как: df = pd.DataFrame(dict(a=[0,1], b=[3,4], c=[6,7]), index=['spam', 'ham']) # a b c # spam 0 3 6 # ham 1 4 7 И у меня есть еще один фрейм данных, который является маской: mask = pd.DataFrame(dict(a=[True,False], b=[True,True]), index=['spam', 'ham']) # a b # spam True True # ham False True И я хочу установить значения в df равными 999, где это True в mask. ...

Функции GroupBy в Python Pandas, такие как SUM (col 1*col 2), weighted average и т. д

Можно ли непосредственно вычислить произведение (или, например, сумму) двух столбцов без использования grouped.apply(lambda x: (x.a*x.b).sum() Это намного (менее половины времени на моей машине) быстрее использовать df['helper'] = df.a*df.b grouped= df.groupby(something) grouped['helper'].sum() df.drop('helper', axis=1) Но мне не очень нравится делать это. Например, полезно вычислить средневзвешенное значение для каждой группы. Здесь лямбда-подход будет grouped.apply(lambda x: (x.a*x.b ...

Numpy: удаление строк со всеми значениями nan или 0

Я хотел бы удалить все значения из таблицы, если строки = nan или 0. Я знаю, что есть способ сделать это с помощью pandas, то есть pandas.dropna(how = 'all'), но я хотел бы использовать метод numpy для удаления строк со всеми nan или 0. Существует ли эффективная реализация этого? ...

Как удалить индекс из созданного фрейма данных в Python?

Я создал фрейм данных df, объединив 2 списка с помощью следующей команды: import pandas as pd df=pd.DataFrame({'Name' : list1,'Probability' : list2}) Но я хотел бы удалить первый столбец (столбец индекса) и сделать столбец под названием Name первым столбцом. Я попробовал использовать del df['index'] и index_col=0. Но они не сработали. Я также проверил reset_index(), и это не то, что мне нужно. Я хотел бы полностью удалить весь столбец индекса из фрейма данных, который был создан таким образо ...

Python Pandas добавить столбец имени файла CSV

Мой код python работает правильно в приведенном ниже примере. Мой код объединяет каталог CSV-файлов и соответствует заголовкам. Однако я хочу сделать еще один шаг - как добавить столбец, который добавляет имя файла CSV, который был использован? import pandas as pd import glob globbed_files = glob.glob("*.csv") #creates a list of all csv files data = [] # pd.concat takes a list of dataframes as an agrument for csv in globbed_files: frame = pd.read_csv(csv) data.append(frame) bigframe ...

Ошибка типа: unhashable тип "список" при выборе подмножества из определенных столбцов pandas dataframe

У меня есть фрейм данных, который имеет около 20 столбцов, и я пытаюсь получить подмножество фрейма данных, выбрав только некоторые конкретные столбцы около 6. Моя строка кода: df3_query = df3[['Cont NUMBER'],['PL NUMBER'],['NAME'],['LOAN COUNT'],['SCORE MINIMUM'],['COUNT PERCENT']] Я получаю ошибку как TypeError: unhashable type: 'list' Могу ли я узнать причину, по которой я получаю эту ошибку? Кроме того, я хотел бы выбрать только те столбцы из фрейма данных df3. Может ли кто-нибудь ...

Построение круговой диаграммы и таблицы фрейма данных pandas

Я должен построить круговую диаграмму и таблицу бок о бок с помощью matplotlib. Для построения круговой диаграммы я использую следующий код: import matplotlib.pyplot as plt df1.EventLogs.value_counts(sort=False).plot.pie() plt.show() Для построения таблицы я использую следующий код: %%chart table --fields MachineName --data df_result2 Df_result2-это таблица со списком машинных имен в ней. Не уверен, что мы можем разместить как круговую диаграмму, так и таблицу рядом. Любая помощь будет ...

Получение полезных дат из топоров.получить xlim () в графике временного ряда панды

Я пытаюсь получить xlimits графика в виде объекта Python datetime из графика временного ряда, созданного с помощью pandas. Использование ax.get_xlim() возвращает пределы оси в виде numpy.float64, и я не могу понять, как преобразовать числа в пригодное для использования время. import pandas from matplotlib import dates import matplotlib.pyplot as plt from datetime import datetime from numpy.random import randn ts = pandas.Series(randn(10000), index=pandas.date_range('1/1/2000', periods=10 ...

Как получить доступ к колонке MultiIndex после groupby в pandas?

С одноиндексированным фреймом данных столбцы доступны в группе по объекту: df1 = pd.DataFrame({'a':[2,2,4,4], 'b': [5,6,7,8]}) df1.groupby('a')['b'].sum() -> a 2 11 4 15 Но в Многоиндексном фрейме данных, когда он не группируется по уровням, столбцы больше не доступны в объекте group by df = pd.concat([df1, df1], keys=['c', 'd'], axis=1) df -> c d a b a b 0 2 5 2 5 1 2 6 2 6 2 4 7 4 7 3 4 8 4 8 df.groupby([('c','a')])[('c','b')].sum() -> Ke ...