python - 如何根据行值将 pandas 列除以整数列表

标签 python pandas dataframe

我有这个数据框:

import pandas as pd
import numpy as np

df = pd.DataFrame({ 'CITY' : np.random.choice(['PHOENIX','ATLANTA','CHICAGO', 'MIAMI', 'DENVER'], 1000),
                    'DAY': np.random.choice(['Monday','Tuesday','Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], 1000),
                    'LOCATION' : np.random.choice(['Location1','Location2','Location3', 'Location4', 'Location5'], 1000),
                    'COUNT': np.random.randint(1, 700, size=1000)})

print(df)

         CITY  COUNT        DAY   LOCATION
0      DENVER    521  Wednesday  Location4
1       MIAMI    123   Saturday  Location3
2     ATLANTA    122  Wednesday  Location3
3      DENVER    363   Saturday  Location1
4     PHOENIX    656   Saturday  Location4
5     PHOENIX    369   Saturday  Location3
6       MIAMI    455    Tuesday  Location5

如何根据位置(例如)将计数列除以整数列表

  • 如果位置1,则将 COUNT 除以 13

  • 如果位置2,则将 COUNT 除以 85

  • 如果位置3,则将 COUNT 除以 42

  • 如果 locationx,则将 COUNT 除以 intx...

最佳答案

这是一种方法:

d = {'Location'+str(i): i*3 for i in range(1, 6)}

df['COUNT'] /= df['LOCATION'].map(d)

说明

  1. 定义“LOCATION”和整数除数之间的映射。字典对于这项任务来说是有效的。
  2. 将“COUNT”列除以通过此字典映射的“LOCATION”列。

关于python - 如何根据行值将 pandas 列除以整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49077405/

相关文章:

python - Nexus pypi 存储库 "Could not find a version that satisfies the requirement"

python - pip install failed with SSL certificate verify failed (_ssl.c :833)

python - 尝试使用正则表达式从脚本注释中提取日期和版本号

python - fillna() 使用第三个多个 pandas 列

Python Pandas 在相同 len() 的两列中使用不同的 value_counts()

python - 如何解压 df 中的列表并在该列表上使用加法而不进行循环

r - 将 df 整数列拆分为 R 中的单个数字

python - 如何通过唯一键值对有序字典列表中的字典进行寻址?

python - 如何在 Pandas 数据框中查找哪些列包含任何 NaN 值

Python Pandas 数据框 : Normalize data between 0. 01 和 0.99?