更改df中的原始值 我有一个如下所示的df,是在执行许多计算后获得的:
Acc Ep Direction Ttest_t Ttest_s T_count TPNL TS TotalPNL TotalS
A KA B -10.62 -0.21 3 -625.52 14.59 -667.61 24.28
B EF B -4.25 2.63 2 -448.08 26.88 -448.08 26.88
D SE B -3.94 8.63 4 -533.70 75.41 -550.26 128.38
G UA S -6.85 -0.09 3 -563.83 19.58 -411.06 21.54
N EL B -5.39 2.84 2 -2230.23 464.56 -6641.1 1232.79
N SD B -4.70 -0.21 2 -1057.0 117.45 -6641.1 1232.79
S UD B -5.48 0.18 33 1416.69 3981.32 955.34 4475.32
然后我按以下方式使用MultiIndex函数:
columns = [('Index','Acc'), ('Index','Ep'), ('EPNL','Ttest_t'), ('EPNL','TPNL'), ('EPNL','TotalPNL'), ('SPaid','Ttest_s'), ('SPaid','TS'), ('SPaid','TotalS'), ('Other','Direction'), ('Other','T_count')]
temp3.columns=pd.MultiIndex.from_tuples(columns)
这确实给了我想要的表格格式。但是,它将空值添加到我的表中(如下所示)
Index EPNL SPaid Other O
Acc Epic Ttest_t TPNL TotalPNL Ttest_s TS TotalS Direction t
NaN NaN NaN NaN NaN NaN NaN NaN NaN h
NaN NaN NaN NaN NaN NaN NaN NaN NaN e
NaN NaN NaN NaN NaN NaN NaN NaN NaN r
NaN NaN NaN NaN NaN NaN NaN NaN NaN T
NaN NaN NaN NaN NaN NaN NaN NaN NaN r
NaN NaN NaN NaN NaN NaN NaN NaN NaN a
NaN NaN NaN NaN NaN NaN NaN NaN NaN d
NaN NaN NaN NaN NaN NaN NaN NaN NaN e
NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN c
NaN NaN NaN NaN NaN NaN NaN NaN NaN o
NaN NaN NaN NaN NaN NaN NaN NaN NaN u
NaN NaN NaN NaN NaN NaN NaN NaN NaN n
NaN NaN NaN NaN NaN NaN NaN NaN NaN t
A KA B -10.62 -0.21 3 -625.52 14.59 -667.61 24.28
B EF B -4.25 2.63 2 -448.08 26.88 -448.08 26.88
D SE B -3.94 8.63 4 -533.70 75.41 -550.26 128.38
G UA S -6.85 -0.09 3 -563.83 19.58 -411.06 21.54
N EL B -5.39 2.84 2 -2230.23 464.56 -6641.17 1232.79
N SD B -4.70 -0.21 2 -1057.02 117.45 -6641.17 1232.79
S UD B -5.48 0.18 33 1416.69 3981.32 955.34 4475.32
关于为什么这样做的任何想法。我希望它不添加值(我不想使用dropna)
答案 0 :(得分:1)
因为字符串是可迭代的,所以('Other' 'T_count')
被转换为
'O','t','h','e',r',' ','T','_','c','o','u','n','t'
并创建了16级MultiIndex
。
解决方案是像,
一样添加('Other', 'T_count')
。
columns = [('Index','Acc'), ('Index','Ep'),
('EPNL','Ttest_t'), ('EPNL','TPNL'),
('EPNL','TotalPNL'), ('SPaid','Ttest_s'),
('SPaid','TS'), ('SPaid','TotalS'),
('Other','Direction'), ('Other','T_count')]
temp3.columns=pd.MultiIndex.from_tuples(columns)
print (temp3)
Index EPNL SPaid Other \
Acc Ep Ttest_t TPNL TotalPNL Ttest_s TS TotalS Direction
0 A KA B -10.62 -0.21 3 -625.52 14.59 -667.61
1 B EF B -4.25 2.63 2 -448.08 26.88 -448.08
2 D SE B -3.94 8.63 4 -533.70 75.41 -550.26
3 G UA S -6.85 -0.09 3 -563.83 19.58 -411.06
4 N EL B -5.39 2.84 2 -2230.23 464.56 -6641.10
5 N SD B -4.70 -0.21 2 -1057.00 117.45 -6641.10
6 S UD B -5.48 0.18 33 1416.69 3981.32 955.34
T_count
0 24.28
1 26.88
2 128.38
3 21.54
4 1232.79
5 1232.79
6 4475.32