繁体   English   中英

对Pandas中的分组数据应用文本解析

[英]Apply text parsing on grouped data in Pandas

我有一个如下所示的数据框:

[A],[B],[C]
22:16070003,16070.00300,0.000000
22:16072033,16072.03300,0.000000
22:16079732,16079.73200,0.000000
22:16079770,16079.77000,0.000000
22:16123812,16123.81200,0.000000
22:16140792,16140.79200,0.000000
22:16155223,16155.22300,1.420802
22:16212250,16212.25000,2.335732
22:16235732,16235.73200,2.335732
22:16240905,16240.90500,2.531714
22:16250859,16250.85900,2.531714
22:16252594,16252.59400,2.531714
22:16260678,16260.67800,2.531714
22:16265053,16265.05300,2.718966
22:16288538,16288.53800,2.718966
22:16288739,16288.73900,2.718966
22:16288742,16288.74200,2.718966
22:16288776,16288.77600,2.718966
22:16335462,16335.46200,2.884803
22:16343856,16343.85600,3.060750
22:16352391,16352.39100,3.393864
22:16356494,16356.49400,3.565964
22:16364923,16364.92300,4.413230

我根据[c]栏中的值对数据进行了分组,并使用以下方法打印每组:

grouped=df.groupby(['C'])
for name,group in grouped:
    print name
    print group

现在,我想生成一个新的数据框,其中包含[A]列中的起始值和结束值,用于根据[c]列中的值创建的组:

[col1]     [start-value]    [end-value]    [columns C group]
22         16070003          16140792        0.000000
22         16155223          16155223        1.420802
22         16212250          16260678        2.531714
22         16265053          16288776        2.718966
.          .                  .               .

我想知道如何解析我的分组数据以生成上述df?

我相信你需要agg ,但首先得到所有的价值:A

df['A'] = df['A'].str.split(':').str[0]

df = df.groupby('C').agg({'B': ['first','last'], 'A':'first'})
df.columns = df.columns.map('_'.join)
df = df.reset_index()
print (df)
          C A_first      B_first       B_last
0  0.000000      22  16070.00300  16140.79200
1  1.420802      22  16155.22300  16155.22300
2  2.335732      22  16212.25000  16235.73200
3  2.531714      22  16240.90500  16260.67800
4  2.718966      22  16265.05300  16288.77600
5  2.884803      22  16335.46200  16335.46200
6  3.060750      22  16343.85600  16343.85600
7  3.393864      22  16352.39100  16352.39100
8  3.565964      22  16356.49400  16356.49400
9  4.413230      22  16364.92300  16364.92300

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM