Python 计算值并创建新的数据帧
我有一个如下所示的数据帧:Python 计算值并创建新的数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个如下所示的数据帧: df Daily Risk Score 0 13.0 1 10.0 2 25.0 3 7.0 4 18.0 ... ... 672 14.0 673 9.0 674 15.0 675 6.0 676 13.0 df1 Green Orange Red x y z 我想计算值为0的次数在此代码末尾使用.groupby和.transpose df1 = pd.cut(df['Daily Risk Score'],
df
Daily Risk Score
0 13.0
1 10.0
2 25.0
3 7.0
4 18.0
... ...
672 14.0
673 9.0
674 15.0
675 6.0
676 13.0
df1
Green Orange Red
x y z
我想计算值为0的次数在此代码末尾使用
.groupby
和.transpose
df1 = pd.cut(df['Daily Risk Score'],
bins=[0, 9, 17, np.inf],
labels=['Green','Orange','Red']).reset_index(). \
groupby('Daily Risk Score').count().transpose()
df1
输出:
Daily Risk Score Green Orange Red
index 3 4 2
尝试:
df1:
Daily Risk Score
Green 3
Orange 5
Red 2
dtype: int64
Green Orange Red
1 3 5 2
或
df2:
Daily Risk Score
Green 3
Orange 5
Red 2
dtype: int64
Green Orange Red
1 3 5 2
我尝试了一种不同的方法。这也很容易。尝试一下,如果您遇到任何问题/错误,请告诉我。 给你:
df["col"] = 0
for i in range(len(df)):
if 0<df["Daily Risk Score"][i]<9:
df["col"][i] = "0<Daily Risk Score<9"
elif 9<df["Daily Risk Score"][i]<17:
df["col"][i] = "9<Daily Risk Score<17"
elif 9<df["Daily Risk Score"][i]<17:
df["col"][i] = "Daily Risk Score>=17"
else:
df["col"][i] = "other"
df["col"].value_counts()
df.drop(columns=["col"])
df[“col”]=0
对于范围内的i(len(df)):
如果0
df["col"] = 0
for i in range(len(df)):
if 0<df["Daily Risk Score"][i]<9:
df["col"][i] = "0<Daily Risk Score<9"
elif 9<df["Daily Risk Score"][i]<17:
df["col"][i] = "9<Daily Risk Score<17"
elif 9<df["Daily Risk Score"][i]<17:
df["col"][i] = "Daily Risk Score>=17"
else:
df["col"][i] = "other"
df["col"].value_counts()
df.drop(columns=["col"])