python - 根据数据框列中的某个值获取所有数据框
问题描述
我DataFrame
看起来像这样:
import numpy as np
import pandas as pd
df=pd.DataFrame([['d',5,6],['a',6,6],['index',5,8],['b',3,1],['b',5,6],['index',6,7],
['e',2,3],['c',5,6],['index',5,8]],columns=['A','B','C'])
我想选择之间的所有行index
并创建许多数据框
我想获得所有:
数据框1:
A B C
1 a 6 6
2 index 5 8
3 3 b 3
数据框 2
A B C
4 b 5 6
5 index 6 7
6 c 2 3
数据框3:
A B C
7 c 5 6
8 index 5 8
9 4 3 1
数据框4:
A B C
11 5 2 3
12 index 4 2
13 1 2 5
解决方案
index_list = df.index[df['A'] == 'index'].tolist() # create a list of the index where df['A']=='index'
new_df = [] # empty list for dataframes
for i in index_list: # for loop
try:
new_df.append(df.iloc[i-1:i+2])
except:
pass
这将创建一个数据框列表,您可以调用它们new_df[0]
new_df[1]
或使用循环将它们打印出来:
for i in range(len(new_df)):
print(f'{new_df[i]}\n')
A B C
1 a 6 6
2 index 5 8
3 b 3 1
A B C
4 b 5 6
5 index 6 7
6 e 2 3
A B C
7 c 5 6
8 index 5 8
推荐阅读
- html - Bootstrap 4 的加长六角形按钮
- c - 扫描一个字符串并在C中打印它
- jquery - 如何将 Bootstrap 与使用旧版本 jQuery 的 CMS 一起使用?我尝试了无冲突模式,但无法使其正常运行
- raku - 在 Raku 的 Bag collection 中获得价值最高的物品
- c# - 查询字符串在“#”之后截断字符串
- django - 在 Django 中使用外部 API
- c++ - 反转字符串中的子字符串的递归函数
- php - PHP CURL 响应时间绕过
- c# - 使用 SSL 进行 Active Directory 登录检查
- android - 根据 textview 对 textview 进行动画处理