iterrows
是一个生成器,每个返回的生成器中包含两个内容:
改行的数据list,并且list的下标是从0开始的
>>>df = pd.DataFrame([[1, 1.5]], columns=['int', 'float'])
>>>row = next(df.iterrows())[1]
>>>row
int 1.0
float 1.5
Name: 0, dtype: float64
>>>print(row['int'].dtype)
float64
>>>print(df['int'].dtype)
int64
##获取pandas中的某一行
df=d.loc[(d['chr']=="Ghir_A01") & (d['start']==8076) & (d['end']==9496)]
#获取该行对应的第3列及以后列的数据
df.iloc[:,3:]
df.loc[['列名3','列名4'...]]
##使用apply对数据框进行批量处理
#没列数加上10
df.apply(lambda x:x+10,axis=1)
筛选chr
列为"Ghir_A01"同时"start"列为8076的行
>>>d.loc[(d['chr']=="Ghir_A01") & (d['start']==8076)]
chr start end 0DPA_Sample001
0 Ghir_A01 8076 9496 0
df.loc['one':'two',['a','c']]#one到two行,ac列
## 行名重复 index
def filterData(myDF):
...: myDF['index'] = myDF.index
...: myDF= myDF.drop_duplicates('index')
...: myDF.set_index = myDF['index']
...: myDF= myDF.drop('index', axis =1)
...: return myDF
#横向连接两个数据框,按行合并
pd.concat([data1,data2],axis=0)
#纵向连接两个数据框,按列合并
pd.concat([data1,data2],axis=1)
#merge 合并
#修改列名
mergeData.columns=['HuanGangRep1', 'HuanGangRep2', 'HuanGangRep3', 'mean']
#修改行名
mergeData.index=['HuanGangRep1', 'HuanGangRep2', 'HuanGangRep3', 'mean']
#! 按照第18列进行降序排序后,提取对应的p-value
pt=tmpData.sort_values(by=[18],axis=0,ascending=False).iloc[0,17]