今天来学学稍微复杂一点的,for循环和判断。对于有过编程基础的童鞋,肯定是觉得简单了,只要注意一下语法就可以了。
还是以咱们熟悉的dataframe来举例:
import pandas as pd
df = pd.DataFrame({'key1':['b','b','a','a','b','a','c'],'key2':['i','j','k','k','i','j','k'],'data1':range(10,17)})
#复制3个df,进行对比:与、或、非
df1 = df.copy()
df2 = df.copy()
df3 = df.copy()
新建一个df,并且复制3个备用。
for i in df1.index: #以索引进行循环
if (df1.loc[i,'key1']=='a')&(df1.loc[i,'key2']=='k'): # 将 key1=a 且 key2=k 的 data1改为20
df1.loc[i,'data1'] = 20
for i in df2.index: #以索引进行循环
if (df2.loc[i,'key1']=='a')|(df2.loc[i,'key2']=='k'): # 将 key1=a 或 key2=k 的 data1改为20
df2.loc[i,'data1'] = 30
for i in df3.index: #以索引进行循环
if not(df3.loc[i,'key1']=='a'): # 将 key1不等于a 的 data1改为40
df3.loc[i,'data1'] = 40
#当然,dataframe可以直接批量修改
df1 = df.copy()
df2 = df.copy()
df3 = df.copy()
df1.loc[(df1['key1']=='a')&(df1['key2']=='k'),'data1'] = 20 #逗号前面,是定位条件;后面是要修改的列名
df2.loc[(df2['key1']=='a')|(df2['key2']=='k'),'data1'] = 30
df3.loc[~(df3['key1']=='a'),'data1'] = 40 #not 换成 ~
#这块是想告诉你,dataframe多么好用,一句话代替了你的for,咋地!
语法讲解for循环
for就不用讲了吧,多做几个实例就理解了:
for i in range(0,11): #在0-10循环
print(i*2) #打印每个数字的2倍
for word in '欢迎关注数据分析与Python':
print('当前文字: %s \n'%(word))
for里面,可以循环range数组、dataframe、字符串等等。if-else
#不准小猪和小猫进门,其他都可以进
name = str(input('请输入名字:'))
if name=='猪':
print('不给开门')
elif name=='猫':
print('不给开门')
else:
print('请进')
剩下的自己去练习吧。
.....这篇写得有点随意啊......不服,你打我啊。。。。。。
专栏列表