我有一个带有ID列的df,需要根据特定的值对其进行解构。
| 识别号|
| - ------|
| 四○一|
| 四○二|
| 四○三|
| 四○四|
对于解构,ID = 401、405、409(即增量4)对应于值"A",并且ID = 402、406、410对应于值"B"。
我想创建一个列"VALUE",它基于ID列的解构和4步增量来存储值A、B。
| 识别号|价值|
| - ------|- ------|
| 四○一|A类|
| 四○二|乙|
| 四○三|C级|
| 四○四|D级|
| 四○五|A类|
| 四○六|乙|
我尝试了一些简单的while和if逻辑,但它们就是不起作用。不值得在这里提供我的代码。
有谁知道在python里怎么做吗?
谢谢
3条答案
按热度按时间ldioqlga1#
一个简单的方法是定义一个查找表,然后在DataFrame上使用函数
apply()
。yc0p9oo02#
您可以将取模运算(
%
)与numpy.select合并使用。或者,将模运算符与pandas.Series.map合并使用。
z31licg03#
如果ID列是连续的并且从401开始,则解决方案很简单:
或者,您可以通过模(%)除法创建重复序列,然后加上65来偏移该序列以表示ascii大写字符
结果