鱼C论坛

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

[已解决]想用数据帧形成字典,求大师帮忙,谢谢

[复制链接]
发表于 2023-4-15 09:19:12 | 显示全部楼层 |阅读模式

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

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

x
df:
代码                 类型        成立日期                                    价值                    管理人        评级        成绩               标准差              风格            星级
000007        混合A-灵活        2001年10月18日0.9520(1.06%)        华夏           A        71                17.74%        中盘平衡        4
000009        混合型-偏股        2013年3月26日        2.0268(0.69%)        西部                B        77.5                21.26%        大盘平衡        4
000011        QDII                        2007年10月9日        1.8237(0.71%)        嘉实                        81                17.95%        大盘平衡        5
000013        混合型-灵活        2013年3月22日        16.6530(0.64%)        华夏                        77                19.26%        大盘价值        5
000015        QDII                        2004年8月11日        1.3100(1.08%)        财通                C        68                19.20%        大盘平衡        4
000017        指数型-股票        2013年3月27日        3.3620(0.18%)        长城                        75.25        17.66%        大盘平衡        4
000019        QDII                        2006年11月24日2.6760(0.56%)        华夏                A        70.75        20.47%        大盘平衡        4
000021        混合型-灵活        2013年4月12日        2.9120(1.39%)        富国                B        70.25        15.01%        大盘价值        4
000023        QDII                        2013年4月18日        1.1708(0.23%)        长城                        68.75         26.10%        大盘价值        0
000025        指数型-股票        2007年9月10日        2.7430(0.77%)        华夏                C        68                 24.68%        大盘平衡        4
000027        QDII                       2013年3月26日        3.9172(1.68%)        汇理                        73.5                 25.96%        大盘平衡        4
000029        QDII                        2007年10月9日        0.8400(-0.24%)        华夏                                         20.26%                4
000031        指数型-股票        2013年3月22日        1.9000(0.32%)        财通                A        73.5        1       6.18%        大盘价值        4
000033        QDII                       2004年8月11日        2.9180(-0.44%)        嘉实                B                          24.56%                4
000035        QDII                       2013年3月27日        2.5900(-0.50%)        嘉实                                          24.03%                4
000037        指数型              2013年3月19日        1.4481(0.62%)        华夏                F        82.5                  16.83%        大盘平衡        5
000039        QDII                        2006年11月24日0.5638(-0.32%)        广发                                           29.01%                4
000041        混合型-灵活        2013年4月12日        2.5110(1.05%)        建信                D        77.75         18.89%        大盘平衡        5

想用上面的数据帧构成字典,具体是用  代码列的代码和列名(代码列名除外)组合形成字典键名,其对应的行和列的交叉点的值作为字典的值,如:
键:000007类型
值:混合A-灵活
我的关键代码如下 :

    fund_dic = {}
    for i_row in range(len(list(df['代码']))):
        for i_col in range(1,len(df.columns)):
            fund_dic[df['代码'][i_row] & df['代码'][i_col]] = df.iloc[df['代码'][i_row],df['代码'][i_col]]
            print(df['代码'][i_row] & df['代码'],df.iloc[df['代码'][i_row],df['代码'][i_col]])

不知为什么,它运行不了,请问大侠,有什么其它办法没,请指导,谢谢!
最佳答案
2023-4-15 10:12:10
您好!看起来您希望将数据帧转换为字典,字典的键由“代码”列的值和其他列名组合而成,对应的值为行和列的交叉点的值。根据您提供的代码,我为您提供了一个修改后的解决方案。您可以尝试以下代码:
import pandas as pd

# 假设您的数据帧名为 df
fund_dic = {}

# 遍历数据帧的行
for index, row in df.iterrows():
    # 遍历除"代码"列之外的所有列
    for col in df.columns[1:]:
        # 创建键名(由“代码”列的值和列名组合)
        key = str(row['代码']) + col
        # 将键名和对应的值添加到字典中
        fund_dic[key] = row[col]

# 输出字典,以查看结果
print(fund_dic)

这段代码应该可以解决您的问题,将数据帧转换为所需的字典格式。如果您有任何疑问,请随时提问,我将竭诚为您服务!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-15 10:12:10 | 显示全部楼层    本楼为最佳答案   
您好!看起来您希望将数据帧转换为字典,字典的键由“代码”列的值和其他列名组合而成,对应的值为行和列的交叉点的值。根据您提供的代码,我为您提供了一个修改后的解决方案。您可以尝试以下代码:
import pandas as pd

# 假设您的数据帧名为 df
fund_dic = {}

# 遍历数据帧的行
for index, row in df.iterrows():
    # 遍历除"代码"列之外的所有列
    for col in df.columns[1:]:
        # 创建键名(由“代码”列的值和列名组合)
        key = str(row['代码']) + col
        # 将键名和对应的值添加到字典中
        fund_dic[key] = row[col]

# 输出字典,以查看结果
print(fund_dic)

这段代码应该可以解决您的问题,将数据帧转换为所需的字典格式。如果您有任何疑问,请随时提问,我将竭诚为您服务!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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