我有类似的东西
var jsObject = JSON.parse('<?= addslashes(json_encode($phpArray)) ?>');
请注意,>>> df
user1 user2 param
0 1 2
a x d a
0 2 6 0 1 0 0
1 4 13 0 0 0 3
2 21 76 2 0 1 0
和user1
与user2
处于同一级别(合并的副作用):
param
我想将>>> df.columns.get_level_values(0)
Index(['user1','user2','param','param','param','param'], dtype='object')
>>> df.columns.get_level_values(1)
Index(['','',0,0,1,2], dtype='object')
下的所有内容转换为浮点数,但将param
和user1
保留为整数。我已经检查过this thread,但不确定如何将其转换为 setting column dtypes。
编辑:
生成器代码
user2
答案 0 :(得分:1)
由于不确定确切的数据结构,因此我无法为您提供经过测试的解决方案。
但是在MultiIndex DataFrame(和其他任何数据)上,您可以使用构成它们的Series的基础属性对DataFrame的各个列进行更改。在这种情况下,您可以通过series.name
进行过滤,如下更改param下所有列的dtypes。
df.apply(lambda x: x.astype(float) if 'param' in x.name else x)
pandas构造MultiIndex名称的方法是通过创建具有不同级别的元组,因此对其执行contains
操作会为您提供所需的列。
编辑:
我已经测试了示例DataFrame中的代码,并且可以正常工作。
看到您的评论。如果要手动访问和修改每个列,则可以单独使用astype
方法来完成。
final_df['count'] = final_df['count'].astype(float)