Заметки по изучению Python, день 58
Общие функции Pandas
Некоторые функции, обычно используемые в Pandas, и примеры их использования перечислены ниже:
Чтение данных
функция | иллюстрировать |
---|---|
pd.read_csv(имя файла) | прочитать CSV-файл; |
pd.read_excel(имя файла) | прочитать файл Excel; |
pd.read_sql(запрос, Connection_object) | Чтение данных из базы данных SQL; |
pd.read_json(json_string) | Считать данные из строки JSON; |
pd.read_html(url) | Чтение данных с HTML-страниц. |
Далее мы продемонстрируем использование каждой функции.
# 实例 1
import pandas as pd
# 从 CSV 文件中读取数据
df = pd.read_csv('data.csv')
# 从 Excel 文件中读取数据
df = pd.read_excel('data.xlsx')
# 从 SQL 数据库中读取数据
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table_name', conn)
# 从 JSON 字符串中读取数据
json_string = '{"name": "John", "age": 30, "city": "New York"}'
df = pd.read_json(json_string)
# 从 HTML 页面中读取数据
url = 'https://www.runoob.com'
dfs = pd.read_html(url)
df = dfs[0] # 选择第一个数据框
Просмотр данных
функция | иллюстрировать |
---|---|
df.head (п) | Отобразите первые n строк данных; |
df.tail(n) | Отобразить последние n строк данных; |
df.info() | Отображать информацию о данных, включая имена столбцов, типы данных, пропущенные значения и т. д.; |
df.describe() | Отображение основной статистической информации о данных, включая среднее значение, дисперсию, максимальное значение, минимальное значение и т. д.; |
df.shape | Отображает количество строк и столбцов данных. |
Далее мы продемонстрируем использование каждой функции.
# 实例 2
# 显示前五行数据
df.head()
# 显示后五行数据
df.tail()
# 显示数据信息
df.info()
# 显示基本统计信息
df.describe()
# 显示数据的行数和列数
df.shape
# 实例 3
import pandas as pd
data = [
{
"name": "Google", "likes": 25, "url": "https://www.google.com"},
{
"name": "Runoob", "likes": 30, "url": "https://www.runoob.com"},
{
"name": "Taobao", "likes": 35, "url": "https://www.taobao.com"}
]
df = pd.DataFrame(data)
# 显示前两行数据
print(df.head(2))
# 显示前最后一行数据
print(df.tail(1))
Очистка данных
функция | иллюстрировать |
---|---|
df.dropna() | Удалить строки или столбцы, содержащие пропущенные значения; |
df.fillna(значение) | Заменить пропущенные значения указанными значениями; |
df.replace(старое_значение, новое_значение) | Заменить указанное значение новым значением; |
df.дублированный() | Проверьте, нет ли дублирующихся данных; |
df.drop_duulates() | Удалите повторяющиеся данные. |
Далее мы продемонстрируем использование каждой функции.
# 实例 4
# 删除包含缺失值的行或列
df.dropna()
# 将缺失值替换为指定的值
df.fillna(0)
# 将指定值替换为新值
df.replace('old_value', 'new_value')
# 检查是否有重复的数据
df.duplicated()
# 删除重复的数据
df.drop_duplicates()
Выбор и нарезка данных
функция | иллюстрировать |
---|---|
df[имя_столбца] | Выберите указанный столбец; |
df.loc[индекс_строки, имя_столбца] | Выбрать данные по тегу; |
df.iloc[индекс_строки, индекс_столбца] | Выбор данных по местоположению; |
df.ix[индекс_строки, имя_столбца] | Выберите данные по метке или местоположению; |
df.filter(items=[имя_столбца1, имя_столбца2]) | Выберите указанный столбец; |
df.filter(regex='regex') | Выберите столбцы, имена которых соответствуют регулярному выражению; |
df.sample(n) | Случайным образом выберите n строк данных. |
Далее мы продемонстрируем использование каждой функции.
# 实例 5
# 选择指定的列
df['column_name']
# 通过标签选择数据
df.loc[row_index, column_name]
# 通过位置选择数据
df.iloc[row_index, column_index]
# 通过标签或位置选择数据
df.ix[row_index, column_name]
# 选择指定的列
df.filter(items=['column_name1', 'column_name2'])
# 选择列名匹配正则表达式的列
df.filter(regex='regex')
# 随机选择 n 行数据
df.sample(n=5)
Сортировка данных
функция | иллюстрировать |
---|---|
df.sort_values(имя_столбца) | Сортировать по значению указанного столбца; |
df.sort_values([имя_столбца1, имя_столбца2], по возрастанию=[Истина, Ложь]) | Сортировка по значениям нескольких столбцов; |
df.sort_index() | Сортировать по индексу. |
Далее мы продемонстрируем использование каждой функции.
# 实例 6
# 按照指定列的值排序
df.sort_values('column_name')
# 按照多个列的值排序
df.sort_values(['column_name1', 'column_name2'], ascending=[True, False])
# 按照索引排序
df.sort_index()
数据分组和聚合
函数 说明
df.groupby(column_name) 按照指定列进行分组;
df.aggregate(function_name) 对分组后的数据进行聚合操作;
df.pivot_table(values, index, columns, aggfunc) 生成透视表。
# 实例 7
# 按照指定列进行分组
df.groupby('column_name')
# 对分组后的数据进行聚合操作
df.aggregate('function_name')
# 生成透视表
df.pivot_table(values='value', index='index_column', columns='column_name', aggfunc='function_name')
Объединение данных
функция | иллюстрировать |
---|---|
pd.concat([df1, df2]) | Объедините несколько фреймов данных по строкам или столбцам; |
pd.merge(df1, df2, on=имя_столбца) | Объединяет два фрейма данных на основе указанных столбцов. |
Далее мы продемонстрируем использование каждой функции.
# 实例 8
# 将多个数据框按照行或列进行合并
df = pd.concat([df1, df2])
# 按照指定列将两个数据框进行合并
df = pd.merge(df1, df2, on='column_name')
Выбор и фильтрация данных
функция | иллюстрировать |
---|---|
df.loc[индексатор_строки, индекс_столбца] | Выбор строк и столбцов по метке. |
df.iloc[индексатор_строки, индекс_столбца] | Выбор строк и столбцов по положению. |
df[df['column_name'] > значение] | Выберите строки в столбце, соответствующие критериям. |
df.query('имя_столбца > значение') | Используйте строковое выражение, чтобы выбрать строки в столбце, соответствующие условию. |
Статистика и описание
функция | иллюстрировать |
---|---|
df.describe() | Рассчитайте базовые статистические данные, такие как среднее значение, стандартное отклонение, минимум, максимум и т. д. |
df.mean() | Вычислите среднее значение каждого столбца. |
df.медиана() | Вычислите медиану каждого столбца. |
df.mode() | Рассчитайте моду каждого столбца. |
df.count() | Подсчитайте количество непропущенных значений в каждом столбце. |
Предположим, у нас есть следующие данные JSON, данные сохраняются в файл data.json:
файл data.json.
[
{
"name": "Alice",
"age": 25,
"gender": "female",
"score": 80
},
{
"name": "Bob",
"age": null,
"gender": "male",
"score": 90
},
{
"name": "Charlie",
"age": 30,
"gender": "male",
"score": null
},
{
"name": "David",
"age": 35,
"gender": "male",
"score": 70
}
]
Мы можем использовать Pandas для чтения данных JSON и выполнения таких операций, как очистка и обработка данных, выбор и фильтрация данных, статистика и описание данных, следующим образом:
# 实例 9
import pandas as pd
# 读取 JSON 数据
df = pd.read_json('data.json')
# 删除缺失值
df = df.dropna()
# 用指定的值填充缺失值
df = df.fillna({
'age': 0, 'score': 0})
# 重命名列名
df = df.rename(columns={
'name': '姓名', 'age': '年龄', 'gender': '性别', 'score': '成绩'})
# 按成绩排序
df = df.sort_values(by='成绩', ascending=False)
# 按性别分组并计算平均年龄和成绩
grouped = df.groupby('性别').agg({
'年龄': 'mean', '成绩': 'mean'})
# 选择成绩大于等于90的行,并只保留姓名和成绩两列
df = df.loc[df['成绩'] >= 90, ['姓名', '成绩']]
# 计算每列的基本统计信息
stats = df.describe()
# 计算每列的平均值
mean = df.mean()
# 计算每列的中位数
median = df.median()
# 计算每列的众数
mode = df.mode()
# 计算每列非缺失值的数量
count = df.count()
постскриптум
Сегодня я узнал об общих функциях Python Pandas. Краткое содержание сегодняшнего учебного материала:
- Общие функции Pandas
- Чтение данных
- Просмотр данных
- Очистка данных
- Выбор и нарезка данных
- Сортировка данных
- Объединение данных
- Выбор и фильтрация данных
- Статистика и описание