在数据框中找到单元格索引

2024-09-29 23:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如果日期框架如下所示:

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

我想修改“A”列并插入另一列。 例如,如果第一个单元格的值A列的大小是8,我想把它打破,得到至少5个值,同样地,其他值取决于每个单元格的大小

我有办法做到吗


Tags: 框架x1办法y1y2个值m25jk0010k25jk0010
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)

另一种方法是:

样品测向:

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

获取每个元素的计数:

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

然后写一个要替换的条件:

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

相关问题 更多 >

    热门问题