對df一部分小於等於0的資料設定為nan:
df[df.iloc[:,1:]<=0] = np.nan
某列轉換成數值型
df_vc1['871eh1-ga03-i1/meas1/prim'] = pd.to_numeric(df_vc1['871eh1-ga03-i1/meas1/prim'],errors='coerce')#'coerce'將字串無效解析設定為nan
對 df一部分資料轉成數值型:
某列轉為str型:
將指定資料列滿足條件的資料設定為nan:
df.loc[df['fzi'] < 20.0,'fzi'] = np.nan
按b列分組對a列進行資料描述
df['a'].groupby(df['b']).describe()
fillna(0)無法填充整型0,這樣轉換下
df['priority'].fillna(0,inplace = true)
df['priority'] = df['priority'].astype('int64')
刪除指定列
df_vc.drop('871eh1-ga03-ap/meas2/prim', axis=1,inplace=true)
轉換time格式,取出部分列
df_vc['time'] = pd.to_datetime(df_vc['time local'])
df_vc1 = df_vc.loc[:,['time','871eh1-ga03-i1/meas1/prim','871eh1-ga03-i2/meas1/prim','871eh1-ga03-i3/meas1/prim']]
四捨五入毫秒轉變為秒級
df['time'] = df['time'].dt.round('s')
向下取整將毫秒轉變為秒級
df_dgs['time'] = df_dgs['time'].dt.floor('s')
刪除指定列重複的多餘的行
df2=df.drop_duplicates('time')
檢視df資料型別及計數
df_vc1.dtypes
df_vc1.count()
算所有列平均值
df_vc1['ga03-i'] = df_vc1.mean(1)
算指定列平均值
df['fzw'] = df[['fz1','fz2','fz3','fz4']].mean(1)
df_mer1 = pd.concat([df3, df_vc1], axis=0, join='outer')#將兩個df按共同的列並集拼接
df_mer1.sort_values(by='time',inplace=true)#按指定列排序
'low': 3,
'medium': 2,
'high': 1}
df_mer1 = df_mer1.groupby('time').mean()#以指定列分組後算均值
df_mer1.dropna(subset=['priority'],inplace=true)刪除指定列的空值行
df_mer1.to_csv('./current_voltage/not ffill/ga03-i.csv',index=false)#df轉為csv檔案
df_dgs.replace(0.,np.nan,inplace=true)#替換0為nan
df[['windspeed','thr_power','dg_power','fzw','fzi','fzu']] = df[['windspeed','thr_power','dg_power','fzw','fzi','fzu']].round(decimals=2)#保留2位小數
df['priority'].value_counts()#指定列的取值計數
df_pdp2.fillna(method='ffill',inplace = true)#向前填充
df_pdp2 = df_pdp2.groupby('time').mean()#按time列分組對其它列算均值,之後需要做df_mer = df_mer.reset_index()
df0 = df[df['priority']==0]#取出指定列值為0的所有行
df0 = df0.iloc[np.random.randint(0,469318,7507)]#取出隨機數指定的行
df_v = pd.read_csv(r'c:\users\18467\desktop\中集\中集資料\tankvolume timeseriesvalues_exported_20200501t000000-20200601t000000_rmorkvemwvelvgbhw艙室容積\timeseriesvalues_exported_20200501t000000-20200601t000000_rmorkvemwvelvgbhw.csv', na_values=' ')#讀取csv資料同時將空格轉為nan值
df_mer.rename(columns=,inplace=true)#改名
特徵分桶
df['ws_bucketized'] = pd.qcut(df['windspeed'], 2, labels=false)
df = pd.merge(df,df.groupby(['ws_bucketized'])['fzw'].mean()
.reset_index()
.rename(columns=)
,on='ws_bucketized'
,how='left'
)
#df1與df2列名稱相同
取出篩選出的資料的索引
data1[data1['a'].isin(['cc'])].index#得先通過data[bool]取出指定資料再.index獲取索引
pd.read_csv(index_col='a')與pd.set_index('a')結果一樣
data1.groupby('a').size()結果為索引為a的series,.reset_index()之後變為dataframe,索引a變為第一列
data1['a'].values=data1['a'].to_numpy()
pd.dataframe(data1['a'])#series變dataframe
找同一行的另乙個取值
data1=pd.dataframe()
data1['b'][data1[data1['a'].isin(['cc'])].index].values[0]
或data1[data1['a'].isin(['cc'])]['b'].values[0]
a=pd.dataframe(['cc1=cc=cc=c1','ccc1=cc=cc=c1','cc1=cc(c)=cc=c1','cc1=cc(c)=cc(c)=c1','cc1=cc=c(c)c=c1','ccc1=cc=c(cc)c=c1'],columns=)
b=a['smiles'].values.tolist()
b.extend(['a','b'])
c=pd.dataframe()
c['smiles']=b
雙迴圈雙break
bestid = none
for i in df_mae.index:
for j in df_mae.index[i+1:i+10]:
if df_mae['id'][j][:8]==df_mae['id'][i][:8]:
bestid = df_mae['id'][j]
break
else:
continue
break
資料分析 pandas
pandas是乙個強大的python資料分析的工具包,它是基於numpy構建的,正因pandas的出現,讓python語言也成為使用最廣泛而且強大的資料分析環境之一。pandas的主要功能 具備對其功能的資料結構dataframe,series 整合時間序列功能 提供豐富的數 算和操作 靈活處理缺失...
python資料分析 Pandas
import pandas as pd series 可以看做乙個定長的有序字典。基本任意的一維資料都可以用來構造 series 物件 s pd.series 1,2,3.0,abc s1 pd.series data 1,3,5,7 index a b x y 通過下標獲取資料 s1 a seri...
資料分析之Pandas
from pandas import series,dataframe import pandas as pd import numpy as np states california ohio oregon texas year 2000,2001,2002,2003 value 35000,71...