为了账号安全,请及时绑定邮箱和手机立即绑定

从列的值创建新列 - Pandas

从列的值创建新列 - Pandas

慕丝7291255 2022-10-06 15:50:18
我想在 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提前致谢 。
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

与由andnumpy.select创建的新 DataFrame 一起使用:Series.str.splitexpand=True


df1 = df['C'].str.split(':', expand=True).astype(int)

print(df1)

   0  1

1  3  2

2  2  2

3  3  3

4  1  4

5  2  5


df['D'] = np.select([df1[0] > df1[1], df1[0] == df1[1], df1[0] < df1[1]], ['A','B','C'])

print (df)

    A   B     C  D

1  12  12  3:02  A

2  13  13  2:02  B

3  14  14  3:03  B

4  15  15  1:04  C

5  16  16  2:05  C


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信