[英]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.split
和expand=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.