10 простых методов обработки данных через Pandas на Python
Для чтения данных из файла можно использовать метод read_csv()
. Этот метод принимает в качестве аргумента путь к файлу и возвращает объект DataFrame.
import pandas as pd # Чтение данных из файла CSV df = pd.read_csv('data.csv') # Вывод данных print(df)
Для записи данных в файл можно использовать метод to_csv()
. Этот метод принимает в качестве аргумента путь к файлу и возвращает None.
# Запись данных в файл CSV df.to_csv('data.csv')
import pandas as pd # Данные data = { 'name': ['John', 'Mary', 'Peter'], 'age': [21, 22, 23] } # Вывод данных print(data)
{'name': ['John', 'Mary', 'Peter'], 'age': [21, 22, 23]}
import pandas as pd # Чтение данных из файла CSV df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
Для фильтрации данных по определенному критерию можно использовать операторы сравнения.
# Фильтрация данных по возрасту df = df[df['age'] > 21] # Вывод данных print(df)
df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
df = pd.read_csv('data.csv') # Фильтрация данных по возрасту df = df[df['age'] > 21] # Вывод данных print(df)
name age 1 Mary 22 2 Peter 23
Для сортировки данных по определенному столбцу можно использовать метод sort_values()
.
# Сортировка данных по возрасту df = df.sort_values('age') # Вывод данных print(df)
df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
df = pd.read_csv('data.csv') # Сортировка данных по возрасту df = df.sort_values('age') # Вывод данных print(df)
name age 2 Peter 23 1 Mary 22 0 John 21
Для агрегации данных по определенному столбцу можно использовать метод agg()
.
# Расчет среднего возраста df['age'].agg('mean')
df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
df = pd.read_csv('data.csv') # Расчет среднего возраста df['age'].agg('mean')
22.0
Для визуализации данных можно использовать библиотеку matplotlib.
import matplotlib.pyplot as plt # График распределения возраста plt.hist(df['age']) plt.show()
df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
import matplotlib.pyplot as plt df = pd.read_csv('data.csv') # График распределения возраста plt.hist(df['age']) plt.show()
Для обработки пропусков в данных можно использовать методы fillna()
или dropna()
.
# Замена пропусков средним значением df['age'].fillna(df['age'].mean(), inplace=True) # Удаление строк с пропусками df.dropna(inplace=True)
df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter NaN
df = pd.read_csv('data.csv') # Замена пропусков средним значением df['age'].fillna(df['age'].mean(), inplace=True) # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 22.0
7. Работа с временными данными
Для работы с временными данными можно использовать библиотеку datetime.
import datetime # Преобразование строки в дату df['date'] = pd.to_datetime(df['date']) # Расчет разницы между датами df['difference'] = df['date'] - df['start_date']
df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
import datetime df['date'] = pd.to_datetime(df['date']) # Вывод данных print(df)
name age date 0 John 21 2023-07-26 1 Mary 22 2023-07-26 2 Peter 23 2023-07-26
Для группировки данных по определенному признаку можно использовать метод groupby()
.
# Группировка данных по возрасту grouped_df = df.groupby('age') # Расчет среднего дохода по возрасту grouped_df['income'].mean()
df = pd.read_csv('data.csv') # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
df = pd.read_csv('data.csv') # Группировка данных по возрасту grouped_df = df.groupby('age') # Расчет среднего дохода по возрасту grouped_df['income'].mean()
22.0
Для соединения двух DataFrame можно использовать методы merge()
или concat()
.
# Соединение двух DataFrame по одному столбцу df1 = pd.DataFrame({'id': [1, 2, 3], 'name': ['John', 'Mary', 'Peter']}) df2 = pd.DataFrame({'id': [2, 3, 4], 'age': [21, 22, 23]}) # Соединение DataFrame по столбцу id df = pd.merge(df1, df2, on='id') # Вывод данных print(df)
df1 = pd.DataFrame({'id': [1, 2, 3], 'name': ['John', 'Mary', 'Peter']}) df2 = pd.DataFrame({'id': [2, 3, 4], 'age': [21, 22, 23]}) # Вывод данных print(df1)
id name 0 1 John 1 2 Mary 2 3 Peter
print(df2)
id age 0 2 21 1 3 22 2 4 23
df1 = pd.DataFrame({'id': [1, 2, 3], 'name': ['John', 'Mary', 'Peter']}) df2 = pd.DataFrame({'id': [2, 3, 4], 'age': [21, 22, 23]}) # Соединение DataFrame по одному столбцу df = pd.merge(df1, df2, on='id') # Вывод данных print(df)
id name age 0 2 Mary 22 1 3 Peter 23
Для импорта данных из других библиотек можно использовать методы read_sql()
, read_excel()
, read_json()
# Импорт данных из базы данных MySQL df = pd.read_sql('SELECT * FROM table', engine='mysql+pymysql://user:password@host:port/database') # Экспорт данных в файл Excel df.to_excel('data.xlsx')
# Данные data = { 'name': ['John', 'Mary', 'Peter'], 'age': [21, 22, 23] } # Вывод данных print(data)
{'name': ['John', 'Mary', 'Peter'], 'age': [21, 22, 23]}
# Данные data = { 'name': ['John', 'Mary', 'Peter'], 'age': [21, 22, 23] } # Импорт данных из списка df = pd.DataFrame(data) # Вывод данных print(df)
name age 0 John 21 1 Mary 22 2 Peter 23
# Экспорт данных в файл Excel df.to_excel('data.xlsx')