2023-08-15    2023-08-15    630 字  2 分钟

1.分组聚合函数(groupby)

类似SQL的groupby那样的数据透视功能。可以使用pandas库的groupby函数来实现分组聚合操作。

举例:

有一个A表,分别有甲项目和乙项目,甲项目连续两年的销售为50万元和54万元,乙项目连续两年的销售额为74万元和56万元。

现在求甲项目和乙项目的各自销售额之和,具体如下: 代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd

## 创建A表
data = {'项目名称': ['甲项目', '甲项目', '乙项目', '乙项目'],
 '销售额': [50, 54, 74, 56]}
df = pd.DataFrame(data)

## 按照“项目名称”进行聚合统计
grouped = df.groupby('项目名称')
result = grouped.sum()

## 打印结果
print(result)

运行结果:

销售额项目名称
乙项目130
甲项目104

2.时间转换函数(to_datetime)

可以使用pandas库的to_datetime函数来实现时间转换操作。

举例:将分秒的时间转换为日期

DateSales
2020-01-01 10:30:001000
2020-01-02 15:20:001500
2020-01-03 18:40:002000

代码:

1
2
3
4
5
6
7
import pandas as pd

data = pd.DataFrame({'Date': ['2020-01-01 10:30:00', '2020-01-02 15:20:00', '2020-01-03 18:40:00'],
'Sales': [1000, 1500, 2000]})

data['Date'] = pd.to_datetime(data['Date']).dt.date
print(data)

运行结果:

DateSales
2020-01-011000
2020-01-021500
2020-01-032000

3.分列函数(str.split)

在Python中,可以使用pandas库的str.split函数来实现分列操作。

举例:将地址列按照逗号分隔符进行拆分,并将拆分后的结果存储到城市列和省份列中。

数据示例:

CustomerAddress
ABeijing,China
BShanghai,China
CNew York,United States

代码:

import pandas as pd data = pd.DataFrame({ ‘Customer’: [‘A’, ‘B’, ‘C’], ‘Address’: [‘Beijing,China’, ‘Shanghai,China’, ‘New York,United States’]}) data[[‘City’, ‘Country/Region’]] = data[‘Address’].str.split(’,’, expand=True)

print(data[[‘City’, ‘Country/Region’]]) 运行结果:

CityCountry/Region
0Beijing/China
1Shanghai/China
2New York/United States