将一列拆分为多列



我有一个熊猫数据帧,如下所示:

|  A       |  Value |
+----------+--------+
|ABC001035 |  34    |
|USN001185 |  45    |
|UCT010.75 |  23    |
|ATC001070 |  21    |  
+----------+--------+

我想把A中的列(基于A中的最后三位数字(分为X和Y列,它应该像下面一样

|  A       |  Value |    X    | Y   |
+----------+--------+---------+-----+
|ABC001035 |  34    |  ABC001 | 035 |
|USN001185 |  45    |  USN001 | 185 |
|UCT010.75 |  23    |  UCT01  | 0.75|
|ATC001070 |  21    |  ATC001 | 070 |
+----------+--------+---------+-----+

那么如何拆分A列呢?

您可以使用.str访问器对序列中的所有字符串进行索引:

>>> df['X'] = df['A'].str[:-3]
>>> df['Y'] = df['A'].str[-3:]
>>> df
A  Value       X    Y
0  ABC001035   34.0  ABC001  035
1  USN001185   45.0  USN001  185
2  UCT010.75   23.0  UCT010  .75
3  ATC001070   21.0  ATC001  070

将问题拆分为更小的问题,更容易解决!:(

如何拆分字符串(取最后3个字符(:

'Hello world!'[-3:0]
# Returns: ld!

如何将函数应用于DataFrame值?

df.A.apply(lambda x: x[-3:])
# Returns pandas.Series: [035, 185, 0.75, 070]

如何将序列保存到新的DataFrame列?

# Create Y column.
df['Y'] = df.A.apply(lambda x: x[-3:])

最新更新