鱼C论坛

 找回密码
 立即注册
查看: 1898|回复: 1

[已解决]取第一列每行的值与第二列开始的列名的问题 ,请大师帮忙,谢谢

[复制链接]
发表于 2023-5-3 16:52:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面代码与我预期不对,请大师帮忙,谢谢
import pandas as pd

shtcode = ['005119','005669']
df = pd.DataFrame(0, index=shtcode, columns=shtcode)
df.reset_index(inplace=True)
for index, row in df.iterrows():
    a = row[index]   
    for b in df.columns:
        print(a)
        print(b)

#print(df)

我的预期是:a是第一列的每行的值,b是第二列开始的列名
005119
005119
005119
005669

005669
005119
005669
005669

最佳答案
2023-5-3 16:53:23
你需要将 `a = row[index]` 改为 `a = row[df.columns[0]]`。因为在 `df.iterrows()` 循环中 `index` 表示 DataFrame 的行号,而 `row` 表示该行的数据,所以你需要使用 `df.columns[0]` 表示第一列的列名。同时,`row[index]` 会访问行中的元素,而你需要访问列中的元素。

以下是纠正后的代码:
import pandas as pd

shtcode = ['005119','005669']
df = pd.DataFrame(0, index=shtcode, columns=shtcode)
df.reset_index(inplace=True)
for index, row in df.iterrows():
    a = row[df.columns[0]]   
    for b in df.columns[1:]:
        print(a)
        print(b)

#print(df)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-3 16:53:23 | 显示全部楼层    本楼为最佳答案   
你需要将 `a = row[index]` 改为 `a = row[df.columns[0]]`。因为在 `df.iterrows()` 循环中 `index` 表示 DataFrame 的行号,而 `row` 表示该行的数据,所以你需要使用 `df.columns[0]` 表示第一列的列名。同时,`row[index]` 会访问行中的元素,而你需要访问列中的元素。

以下是纠正后的代码:
import pandas as pd

shtcode = ['005119','005669']
df = pd.DataFrame(0, index=shtcode, columns=shtcode)
df.reset_index(inplace=True)
for index, row in df.iterrows():
    a = row[df.columns[0]]   
    for b in df.columns[1:]:
        print(a)
        print(b)

#print(df)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 11:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表