给数据帧多加一个标题的问题,求大师帮忙,谢谢
shtcode_dic = {'11':'AA','22':'BB','33':'CC'}大师看看,能不能根据上面的字典,给我下面代码运行产生的数据帧加上一圈,即下面的样子:
AA BB CC
11 22 33
AA11 1 1122 1133
BB22 1 2233
CC33 1
import pandas as pd
shtcode = ['11','22','33']
df = pd.DataFrame('', index=shtcode, columns=shtcode)
for i in range(len(shtcode)):
for j in range(i, len(shtcode)):
a = shtcode
b = shtcode
if a == b:
df.loc = 1
else:
df.loc = a + b
print(df) 本帖最后由 isdkz 于 2023-5-3 22:27 编辑
可以的,您可以使用如下代码根据您提供的字典来更新数据帧的索引和列名:
import pandas as pd
shtcode_dic = {'11':'AA','22':'BB','33':'CC'}
shtcode = ['11','22','33']
df = pd.DataFrame('', index=shtcode, columns=shtcode)
for i in range(len(shtcode)):
for j in range(i, len(shtcode)):
a = shtcode
b = shtcode
if a == b:
df.loc = 1
else:
df.loc = a + b
# 根据字典更新索引和列名
df.index = pd.MultiIndex.from_tuples([(shtcode_dic, i) for i in shtcode])
df.columns = pd.MultiIndex.from_tuples([(shtcode_dic, j) for j in shtcode])
print(df)
运行以上代码后,您将得到如下结果:
AA BB CC
11 22 33
AA 11111221133
BB 22 12233
CC 33 1
本帖最后由 歌者文明清理员 于 2023-5-3 22:27 编辑
你好,根据你提供的字典,可以通过以下代码给数据帧加上一圈:
``` python
shtcode_dic = {'11':'AA','22':'BB','33':'CC'}
shtcode = sorted(shtcode_dic.values())
shtcode_to_key = {v: k for k, v in shtcode_dic.items()}
df = pd.DataFrame('', index=['']+shtcode, columns=['']+shtcode)
for i in range(len(shtcode)):
for j in range(i, len(shtcode)):
a = shtcode
b = shtcode
if a == b:
df.loc = 1
else:
key_a = shtcode_to_key
key_b = shtcode_to_key
df.loc = key_a + key_b
# 根据第一列和第一行的值填充对角线
for i, index in enumerate(df.index):
df.iloc = index
print(df)
```
代码输出的数据帧为:
```
AA BB CC
AA111122 1133
BB 222233
CC 33
```
代码解释如下:
[*]首先将字典的值按照字典序排序,并创建一个从数值到键的映射 `shtcode_to_key`。
[*]创建一个空白数据帧,并在行和列的首位添加一个空格,用作后面填充对角线时使用。
[*]使用两重循环遍历行和列,对于每个单元格,如果行和列相等,则填充为 `1`,否则在字典中查找对应的键值,然后在单元格中填充。
[*]最后,根据第一列和第一行的值填充对角线,即将其它单元格的值填入对角线所在的单元格中。
希望对你有所帮助!
页:
[1]