【发布时间】:2018-09-04 17:21:30
【问题描述】:
我有类似的东西
>>> 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 和user2 保留为整数。我已经检查了this thread,但我不确定它如何转化为 setting column dtypes。
编辑:
生成器代码
df = pd.DataFrame({'user1':[2,4,21,21],'user2':[6,13,76,76],'param1':[0,2,0,1],'param2':['x','a','a','d'],'count':[1,3,2,1]}, columns=['user1','user2','param1','param2','count'])
df = df.set_index(['user1','user2','param1','param2'])
df = df.unstack([2,3]).sort_index(axis=1)
df2 = pd.DataFrame({'user1':[2,5,21],'user2':[6,18,76]})
df2.columns = pd.MultiIndex.from_product([df2.columns, [''],['']])
final_df = df2.merge(df, on=['user1','user2'], how='outer').fillna(0)
【问题讨论】:
-
你能提供一个DataFrame生成器吗?
-
嗨@gonzalomr 我在上面添加了一些生成器代码,谢谢
标签: pandas