python dataframe 列赋值_dataframe根据新列特征的条件为其赋值,给
方式一: 直接用比較? ?df['B']=df[['B','C']].max(axis=1)
方式2 : dataframe.apply(自定義函數)
df['label']=df.apply(lambda x: label_get(x.time,x.broad),axis=1)
### 代碼測試樣例
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['time','B','C','D'])
## 測試,labels的生成為 A 在0-5區間內的,B/c 小于等于0.51為0,大于0.8為1 A 5-10區間內的,B/C 小于0.942的為0,大于為1
df['B']=df['B'].astype(float)
df['C']=df['C'].astype(float)
df['broad']=df['B']/df['C']
# df
df.loc['2013-01-02','B']=10
# df['B']=
print(df)
# df['z']=df[['x','y']].max(axis=1) 取兩個特征中的大者做為新特征列的值
df['B']=df[['B','C']].max(axis=1)
df
## 應用函數,根據某幾列特征的條件,對新特征賦值
def label_get(time_length,broad_rate):
if time_length<5:
if broad_rate<=0.51:
return 0
else:
return 1
elif time_length >=5 and time_length <14:
if broad_rate<0.91:
return 0
else:
return 1
else:
return 0
df['label']=df.apply(lambda x: label_get(x.time,x.broad),axis=1)
print(df)
輸出
總結
以上是生活随笔為你收集整理的python dataframe 列赋值_dataframe根据新列特征的条件为其赋值,给的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七年级计算机教学质量分析,七年级数学期末
- 下一篇: websocket python爬虫_p