我有一个熊猫数据框如下:
| 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列?
答案 0 :(得分:2)
您可以使用 .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
答案 1 :(得分:1)
把你的问题分成更小的问题,更容易解决! :)
如何拆分字符串(取最后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:])