对dataframe的行和列进行遍历和修改

首先先定一个这样的字典,然后我们用不同的方法对其遍历和修改

字典df

df=pd.DataFrame({"A":[1,2,3,4],"B":[5,6,7,8],"C":[1,1,1,1]})
   A  B  C
0  1  5  1
1  2  6  1
2  3  7  1
3  4  8  1

i.遍历列

1.ix函数(df.ix[条件,操作区域])

df.ix[df.A>1,'B']=-1
df
   A  B  C
0  1  5  1
1  2 -1  1
2  3 -1  1
3  4 -1  1

2.iterrows()函数。这个函数一般跟index和row一起使用,应为他会返回两个值,一个就是index,一个是行

for index,row in df.iterrows():
	if row['A']>1:
		row['B']=-1
   A  B  C
0  1  5  1
1  2 -1  1
2  3 -1  1
3  4 -1  1

3.where函数,np.where(条件,then,else)

df["then"]=np.where(df.A<3,1,0)
df
   A  B  C  then
0  1  5  1     1
1  2  6  1     1
2  3  7  1     0
3  4  8  1     0

4.apply函数你可以对行或列每一个数值进行自己指定函数的操作

def judgeLevel(df):
    if df['A'] < 2:
        return 'C'
    elif df['A'] > 3:
        return 'A'
    else:
        return 'B'

 df['level']=df.apply(lambda r:judgeLevel(r),axis=1)
 df
   A  B  C   level
0  1  5  1    C
1  2  6  1    B
2  3  7  1    B
3  4  8  1    A

ii.遍历列
iloc函数

for i in range(0, len(df)):
    print (df.iloc[i]['A'], df.iloc[i]['B'])
     1 5
     2 6
     3 7
     4 8
对于DataFrame按行遍历,可以使用iterrows()方法来实现。iterrows()方法会返回一个迭代器对象,该对象包含每一行的索引和数据。可以使用for循环来逐行处理数据。下面是一个示例代码: ```python import pandas as pd # 示例数据 data = {'name': ['刘一', '陈二', '张三', '李四', '王五'], 'age': [18, 19, 20, 21, 22], 'height': [175, 176, 177, 178, 179]} index = ['0001', '0002', '0003', '0004', '0005'] df = pd.DataFrame(data=data, index=index) df.index.name = 'id' # 按行遍历 for index, row in df.iterrows(): print("Index:", index) print("Row:", row) # 输出每行的索引值和对应的数据 ``` 这段代码会按行遍历DataFrame,并输出每行的索引值和对应的数据。你可以根据实际需求修改输出的内容或进行其他操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Dataframe按行按列遍历的几种方式](https://blog.csdn.net/weixin_48419914/article/details/120328571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [pandas.DataFrame按行遍历和按列遍历](https://blog.csdn.net/lly1122334/article/details/121775416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值