Python 按列变量拆分数据帧
我有一个数据框,我想用一个列变量拆分它,如下例:Python 按列变量拆分数据帧,python,pandas,filtering,Python,Pandas,Filtering,我有一个数据框,我想用一个列变量拆分它,如下例: gender height weight male 42.8 157.5 male 41.3 165.6 female 48.4 144.2 我期望的结果是: df_男性 gender height weight male 42.8 157.5 male 41.3 165.6 gender height weight female 48.4 144.2 df_女性 gender h
gender height weight
male 42.8 157.5
male 41.3 165.6
female 48.4 144.2
我期望的结果是:
df_男性
gender height weight
male 42.8 157.5
male 41.3 165.6
gender height weight
female 48.4 144.2
df_女性
gender height weight
male 42.8 157.5
male 41.3 165.6
gender height weight
female 48.4 144.2
问题是我想成为
可以使用具有5-25个类别的变量执行此操作
我的想法是,应该有一种方法来循环原始数据帧并吐出多个数据帧,但我对所有可能的解决方案持开放态度以下将生成一个列表,其中包含
gender
列中每个值的一个数据帧:
import io
import pandas as pd
data = io.StringIO('''\
gender height weight
male 42.8 157.5
male 41.3 165.6
female 48.4 144.2
''')
df = pd.read_csv(data, delim_whitespace=True)
dfs = [rows for _, rows in df.groupby('gender')]
dfs
是长度为2的列表,包含以下元素:
print(dfs[0])
# gender height weight
# 2 female 48.4 144.2
print(dfs[1])
# gender height weight
# 0 male 42.8 157.5
# 1 male 41.3 165.6
最好创建一个字典,其中包含gender
列中不同值的键和数据帧的值:
dfs = [{gender: rows for gender, rows in df.groupby('gender')}
结果显示在以下词典中:
{'female':性别身高体重
2女48.4 144.2,
“男性”:性别身高体重
0男42.8 157.5
1男41.3 165.6}
以下内容将生成一个列表,其中包含性别
列中每个值的一个数据帧:
import io
import pandas as pd
data = io.StringIO('''\
gender height weight
male 42.8 157.5
male 41.3 165.6
female 48.4 144.2
''')
df = pd.read_csv(data, delim_whitespace=True)
dfs = [rows for _, rows in df.groupby('gender')]
dfs
是长度为2的列表,包含以下元素:
print(dfs[0])
# gender height weight
# 2 female 48.4 144.2
print(dfs[1])
# gender height weight
# 0 male 42.8 157.5
# 1 male 41.3 165.6
最好创建一个字典,其中包含gender
列中不同值的键和数据帧的值:
dfs = [{gender: rows for gender, rows in df.groupby('gender')}
结果显示在以下词典中:
{'female':性别身高体重
2女48.4 144.2,
“男性”:性别身高体重
0男42.8 157.5
1男41.3 165.6}
按(逻辑)条件选择行称为筛选按(逻辑)条件选择行称为筛选