我有一个熊猫数据帧,如下所示:
| 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:])