Skip to main content
 首页 » 编程设计

python之如何在 Python Pandas 中的数组、列表或数据帧中的每个单个数字元素的末尾 append 1

2025年05月04日27cmt

我发现用数组很难做到这一点,但无论哪种输出方法都适合我。 我想从我的 DataFrame 中取出一列,其中包含一位数和两位数。
这些项目目前是整数,但可以将它们转换为 str 或 bool,无论执行任务需要什么。

我想在所有单个数字的末尾添加一个 1 例如,如果第一个数字是 2,那么我希望它返回 21。

最后,完成这些操作后,我需要将数字分成两半并创建两列。 例如

col['a'] = [3, 22, 23, 2, 1]  

所以我的输出应该是这样的:

col['a'] = [31, 22, 23, 21, 11]  

然后,我很可能会做类似的事情

col['b'] = col['a'][0:]  
[3,2,2,2,1]  

和

col['c'] = col['a'][:1]  
[1,2,3,1,1].       

请您参考如下方法:

假设您的数据是数字。您可以使用 np.mod(data, 10) 获取最后一位数字。

import pandas as pd 
import numpy as np 
 
# data 
# =========================== 
df = pd.DataFrame({'a': [31, 22, 23, 21, 11]}) 
df.dtypes 
 
a    int64 
dtype: object 
 
 
# processing 
# ===================================== 
df['c'] = np.mod(df.a, 10) 
 
df 
    a  c 
0  31  1 
1  22  2 
2  23  3 
3  21  1 
4  11  1     

编辑:

在每个单个数字的末尾加 1:

df = pd.DataFrame({'a': [31,22,23,21,11,1,2,3,4,5]}) 
 
df 
 
    a 
0  31 
1  22 
2  23 
3  21 
4  11 
5   1 
6   2 
7   3 
8   4 
9   5 
 
 
single_digit_selector = df.a - np.mod(df.a, 10) == 0 
df[single_digit_selector] = df[single_digit_selector] * 10 + 1 
df 
 
    a 
0  31 
1  22 
2  23 
3  21 
4  11 
5  11 
6  21 
7  31 
8  41 
9  51