簡體   English   中英

從列的值創建新列 - Pandas

[英]Creating a new column from the values of a column - 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 列分為兩部分;
如果第一個值大於第 1 行中的第二個值 == 3>02,則 D 列值上的值將為 A
如果兩個值都像第 2 行和第 3 行(2:02/3:03)一樣相等,則 D 列值上的值將為 B
如果第二個值大於第一個值,如第 4 行和第 5 行 (1:04 /2:05 ) D 列值將是 C

所以新數據看起來像

    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

提前致謝。

numpy.select與由Series.str.splitexpand=True創建的新 DataFrame 一起使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM