📅  最后修改于: 2023-12-03 15:10:06.830000             🧑  作者: Mango
Pandas 是 Python 中用于数据分析的重要库。在 Pandas 中,数据一般存储在数据框中,也称为 DataFrame。有时我们需要把数据框拆分成多个子集,并对其进行处理。这时候,我们可以使用 Pandas 提供的方法来完成这个任务。
我们可以按照指定的列对数据框进行拆分。具体代码如下:
import pandas as pd
# 创建数据框
data = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky', 'Thomas'],
'Age': [28, 34, 29, 42, 25],
'Country': ['US', 'UK', 'US', 'UK', 'US']}
df = pd.DataFrame(data)
print(df)
# 按照 Country 列进行拆分
grouped = df.groupby('Country')
for key, item in grouped:
print(grouped.get_group(key), "\n")
输出结果:
Name Age Country
0 Tom 28 US
1 Jack 34 UK
2 Steve 29 US
3 Ricky 42 UK
4 Thomas 25 US
Name Age Country
0 Tom 28 US
2 Steve 29 US
4 Thomas 25 US
Name Age Country
1 Jack 34 UK
3 Ricky 42 UK
我们也可以按照指定的行数进行拆分。具体代码如下:
import pandas as pd
# 创建数据框
data = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky', 'Thomas'],
'Age': [28, 34, 29, 42, 25],
'Country': ['US', 'UK', 'US', 'UK', 'US']}
df = pd.DataFrame(data)
print(df)
# 按照指定行数进行拆分
n = 2
list_df = [df[i:i+n] for i in range(0,df.shape[0],n)]
for item in list_df:
print(item, "\n")
输出结果:
Name Age Country
0 Tom 28 US
1 Jack 34 UK
2 Steve 29 US
3 Ricky 42 UK
4 Thomas 25 US
Name Age Country
0 Tom 28 US
1 Jack 34 UK
Name Age Country
2 Steve 29 US
3 Ricky 42 UK
Name Age Country
4 Thomas 25 US
我们还可以按照指定条件对数据框进行拆分。具体代码如下:
import pandas as pd
# 创建数据框
data = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky', 'Thomas'],
'Age': [28, 34, 29, 42, 25],
'Country': ['US', 'UK', 'US', 'UK', 'US']}
df = pd.DataFrame(data)
print(df)
# 按照 Age 列的值是否大于等于 30 进行拆分
grouped = df.groupby(lambda x: True if df.loc[x, 'Age'] >= 30 else False)
for key, item in grouped:
print(grouped.get_group(key), "\n")
输出结果:
Name Age Country
0 Tom 28 US
1 Jack 34 UK
2 Steve 29 US
3 Ricky 42 UK
4 Thomas 25 US
Name Age Country
1 Jack 34 UK
3 Ricky 42 UK
Name Age Country
0 Tom 28 US
2 Steve 29 US
4 Thomas 25 US
以上是拆分 Pandas 数据框的三种常见方法,可以根据实际情况选择合适的方法。