在日期框架中找到单元格的索引

时间:2018-10-18 12:25:24

标签: python

我想根据其大小修改单元格值。

如果日期范围如下:

  A         B    C
 25802523   X1   2
 M25JK0010  Y1   1
 K25JK0010  Y2   1

我想修改列“ A”并插入到另一列。 例如,如果第一个单元格的值是A列的大小,则我想将其破坏并获得至少5个值,类似地,其他值取决于每个单元格的大小。

有什么办法可以做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以这样做:

t = pd.DataFrame({'A': ['25802523', 'M25JK00010', 'KRJOJR4445'],
                  'size': [2, 1, 8]} )

根据相应的大小定义所需最终长度的字典。在这里,如果大小为8,我将选择最后5个字符

size_dict = {8: 5, 2: 3, 1: 4}

然后使用简单的pandas apply

t['A_bis'] = t.apply(lambda x: x['A'][len(x['A']) - size_dict[x['size']]:], axis=1)

结果是

0      523 >> 3 last characters (key 2)
1     0010 >> 4 last characters (key 1)
2    R4445 >> 5 last characters (key 8)

答案 1 :(得分:1)

另一种方法:

样本df:

t = pd.DataFrame({'A': ['25802523', 'M25JK00010', 'KRJOJR4445']})

获取A的每个元素的数量:

t['Count'] =(t['A'].apply(len))

然后写一个替换条件:

t.loc[t.Count == 8, 'Number'] = t['A'].str[-5:]