过去1个小时,我一直在尝试解决此问题,但收效甚微,甚至没有成功,这真是一团糟。
我有一个df
Age Bronx Manhatten Brooklyn Queens
0 10 11 13 12
1 8 7 9 9
2 5 8 7 6
3 3 2 3 4
4 8 6 8 7
5 10 12 13 14
6 11 13 12 10
7 7 8 6 8
如何将
的所有列(布朗克斯,曼哈顿,布鲁克林,皇后区)相乘age 0 by 0.05
age 1 by 0.02
age 2,3,4, by 0.2
,然后将其删除。
答案 0 :(得分:2)
使用..
"styles": [
"node_modules/leaflet/dist/leaflet.css",
"node_modules/leaflet.markercluster/dist/MarkerCluster.css",
"node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css",
"src/styles.css"
],
...
和您自己的mul
来映射年龄
dict
答案 1 :(得分:1)
有很多方法可以做到这一点:
def multiply_age(age):
if age == 0:
age *= 0.05
elif age == 1:
age *= 0.02
elif age in {2, 3, 4}:
age *= 0.2
return age
df['Age'].apply(multiply_age)
df['Age'].apply(multiply_age)
将返回一系列年龄。然后,您可以通过执行pd.DataFrame(df['Age'].apply(multiply_age))
使其成为数据框。
您也可以尝试以下方法:
def multiply_age(row):
age = row['Age']
if age == 0:
age *= 0.05
elif age == 1:
age *= 0.02
elif age in {2, 3, 4}:
age *= 0.2
row['Age'] = age
return row
df.apply(lambda row: multiply_age(row), axis=1)['Age']