for循环+zip根据列名遍历dataframe元素

先看一下我的df数据:

df.head()

输出:
在这里插入图片描述

# 使用zip和for循环,要求df必须要有列名
for i, column in zip(range(df.shape[1]), df.columns):
	# 输出每列的列名以及第一个元素
    print(column, df[column][0])

输出:
在这里插入图片描述

zip函数解析:
语法:

zip([iterable, ...])

说明:
iterable:一个或多个可迭代对象,可以使列表、元组、字典、集合、字符串、range()区间等;iterable中可以是不同的数据类型;多个迭代器可以用逗号隔开。

zip()接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple,然后返回由这些tuples组成的list。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list解压(unzip)。

返回值:返回zip对象,可以用list、dict等进行转换。

栗子🌰

list_1 = [1, "love", 2, 3]
list_2 = [4, 5]
dict_3 = {"霜叶": 20, "红于": 21, "二月花": 22}
tuple_4 = ("p", "y", "t", "h", "o", "n")
set_5 = {31, 32, 33}
result = zip(list_1, list_2, dict_3, tuple_4, set_5)
print(list(result))

输出是:[(1, 4, '霜叶', 'p', 32), ('love', 5, '红于', 'y', 33)]

这里有一个疑问:为什么set_5输出对应的是32、33,而不是31、32呢❓
因为set中的元素是无序的,每个元素的地位都是一样的,也就是说集合中不存在索引,各个元素的位置都是随机的。zip需要用于固定顺序, 可索引的对象。为避免出错, 使用前, 尽量转化为最常用的list。(感谢这位博主的解答)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值