python - 将数字熊猫中的每个数字相乘
问题描述
我正在解决一个问题,以帮助更好地使用 Python/Pandas 进行编码,但我被困在这种情况下。
第 1 步:将每个单独的字符乘以给定的数字。
第 2 步:将结果相加以创建总和。
第 3 步:从最接近的等于或高于十的倍数中减去总和。
我想对系列中的数字执行此操作。例如:系列=[123456789012],[02345434225],[2349349723]
解决方案
Setup
df = pd.DataFrame([
[6, 2, 9, 1, 0, 4, 1, 5, 0, 0, 2, 1],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
]).add_prefix('N')
a = np.array([1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3])
Solution
- Multiply by an array broadcast over rows
- Sum over rows
- Modulo 10
- Assign to a new column
df.assign(Check=(df * -a).sum(1).mod(10))
N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 Check
0 6 2 9 1 0 4 1 5 0 0 2 1 3
1 1 2 3 4 5 6 7 8 9 0 1 2 8
推荐阅读
- node.js - 如何在 mac 上安装 expo-cli@3.11.3
- visual-studio-code - 带有自定义可执行文件的 launch.json 中的 vscode 调试设置 pipenv
- javascript - 使用 Jest 进行 AngularJS 测试
- python - 修改python脚本减去三个小时
- ansible - 在 run_once=true 的任务中委派给 localhost 时,是否可以更改显示的主机名?
- sql - 如何在标志为0时获取最后一行值并在pyspark数据帧中的标志1时将当前行值获取到新列
- sql-server - 如果用户具有“拒绝视图定义”,则 SQL Server 从链接服务器中选择会引发错误
- java - 如何根据映射替换映射中的键
- multithreading - 为什么多线程写入 Vec
> 使用原始指针段错误? - javascript - 使用 Moment js 对充满 ISO 日期的数组进行排序