Python 如何根据行值将列除以整数列表
我有这个数据框:Python 如何根据行值将列除以整数列表,python,pandas,dataframe,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
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,则将计数除以13
- 如果是位置2,则将计数除以85
- 如果是位置3,则将计数除以42
- 如果位置X,则将计数除以intx
- 这里有一种方法:
d = {'Location'+str(i): i*3 for i in range(1, 6)}
df['COUNT'] /= df['LOCATION'].map(d)
解释
d = {'Location'+str(i): i*3 for i in range(1, 6)}
df['COUNT'] /= df['LOCATION'].map(d)
解释
我对
.map()
不是很熟悉,所以我的方法是这样的(计算成本可能会高一点):
df['COUNT']=None
地点={location:to_divide_by,location2:to_divide_by 2}等等
对于索引,df.iterrows()中的行:
df['COUNT'][index]=row['COUNT']/locations[row['LOCATION']]
我不太熟悉.map()
df['COUNT']=None
地点={location:to_divide_by,location2:to_divide_by 2}等等
对于索引,df.iterrows()中的行:
df['COUNT'][index]=row['COUNT']/locations[row['LOCATION']]
哦,对不起,整数并不总是3的倍数。实际上我有一个6个位置的列表,需要除以静态整数。有什么方法可以手动填充列表吗?@calculation您可以提供任何您想要的词典。只要值是您想要除以的值,键是您可以在LOCATION
列中找到的东西。jpp必须提供一个例子,因为你没有。这个答案正是你所需要的。如果您需要更多详细信息,我建议您在问题中添加更多信息。@演算,正如pir所解释的,您可以提供任何您喜欢的映射。如果你有你不知道如何实现的特定逻辑,那么请随意提问。我现在知道了,我不知道那是一本字典。按预期工作。谢谢抱歉,整数不一定是3的倍数。实际上我有一个6个位置的列表,需要除以静态整数。有什么方法可以手动填充列表吗?@calculation您可以提供任何您想要的词典。只要值是您想要除以的值,键是您可以在LOCATION
列中找到的东西。jpp必须提供一个例子,因为你没有。这个答案正是你所需要的。如果您需要更多详细信息,我建议您在问题中添加更多信息。@演算,正如pir所解释的,您可以提供任何您喜欢的映射。如果你有你不知道如何实现的特定逻辑,那么请随意提问。我现在知道了,我不知道那是一本字典。按预期工作。谢谢,你为什么不给出一个完整的例子来说明你想除以什么?你为什么不给出一个完整的例子来说明你想除以什么?