gpt4 book ai didi

python - Pandas 试图通过在某些字符串之间获取行来转换数据帧

转载 作者:行者123 更新时间:2023-12-04 07:37:00 25 4
gpt4 key购买 nike

我有一个看起来像这样的数据集:


COL1
COL2


姓名
名称_2

一种
1


2

停止
停止

姓名2
名称2_2

C
3

d
4

电子
5

停止
停止


我想把它转换成类似的东西:


COL1
COL2
COL3


姓名
一种
1

姓名

1

姓名2
C
3

姓名2
d
4

姓名2
电子
5


我一直在尝试找到一种方法来对数据集进行子集化,以获取“名称”和“停止”之间的所有内容

最佳答案

一种转换方式:

d = {'COL1': {0: 'name', 1: 'a', 2: 'b', 3: 'stop', 4: 'name2', 5: 'c', 6: 'd', 7: 'e', 8: 'stop'}, 'COL2': {0: 'name_2', 1: '1', 2: '2', 3: 'stop', 4: 'name2_2', 5: '3', 6: '4', 7: '5', 8: 'stop'}}
df = pd.DataFrame(d)
m = df.COL1.str.contains('name')
df.loc[m, 't'] = df.loc[m]['COL1']
df = df.fillna(method= 'ffill')
df = df.groupby('t').apply(lambda x : x.iloc[1:-1]).reset_index(drop=True)
重命名/排序列:
df.columns = ['COL2','COL3','COL1']
df = df[sorted(df.columns)]
输出:
    COL1 COL2 COL3
0 name a 1
1 name b 2
2 name2 c 3
3 name2 d 4
4 name2 e 5

关于python - Pandas 试图通过在某些字符串之间获取行来转换数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67693733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com