从列的值创建新列 - Pandas

我想在 Pandas 上创建一个与我在 C 列上拥有的信息相关的新列,并想创建一个 D 列。我拥有的数据有 50k 列,所以我无法手动完成。


数据样本是 ;


        A           B              C

        12          12            3:02

        13          13            2:02

        14          14            3:03

        15          15            1:04

        16          16            2:05

我需要将值从冒号符号中的 C 列分为 2 个部分;

如果第一个值大于第 1 行中的第二个值 == 3>02,则 D 列值上的值将为 A

如果两个值相等,如第 2 行和第 3 行 (2:02/3:03) 上的值

如果第二个值大于第一个值,如第 4 行和第 5 行(1:04 /2:05),D 列值将为B


所以新数据看起来像


    A            B             C           D

    2           12            3:02         A  

    13          13            2:02         B   

    14          14            3:03         B  

    15          15            1:04         C  

    16          16            2:05         C

提前致谢 。


慕丝7291255
浏览 76回答 1
1回答

ITMISS

与由andnumpy.select创建的新 DataFrame 一起使用:Series.str.splitexpand=Truedf1 = df['C'].str.split(':', expand=True).astype(int)print(df1)&nbsp; &nbsp;0&nbsp; 11&nbsp; 3&nbsp; 22&nbsp; 2&nbsp; 23&nbsp; 3&nbsp; 34&nbsp; 1&nbsp; 45&nbsp; 2&nbsp; 5df['D'] = np.select([df1[0] > df1[1], df1[0] == df1[1], df1[0] < df1[1]], ['A','B','C'])print (df)&nbsp; &nbsp; A&nbsp; &nbsp;B&nbsp; &nbsp; &nbsp;C&nbsp; D1&nbsp; 12&nbsp; 12&nbsp; 3:02&nbsp; A2&nbsp; 13&nbsp; 13&nbsp; 2:02&nbsp; B3&nbsp; 14&nbsp; 14&nbsp; 3:03&nbsp; B4&nbsp; 15&nbsp; 15&nbsp; 1:04&nbsp; C5&nbsp; 16&nbsp; 16&nbsp; 2:05&nbsp; C
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python