问:Python(熊猫或其他)-我需要;“展平”;从多行、少列到一行、多列的数据文件
我需要将数据文件从多行、少列“展平”到一行多列 我目前在pandas中有一个数据框(从Excel加载),最终需要更改数据的显示方式,以便以逻辑方式积累大量数据。下表试图说明我的要求 发件人: 致:问:Python(熊猫或其他)-我需要;“展平”;从多行、少列到一行、多列的数据文件,python,excel,pandas,Python,Excel,Pandas,我需要将数据文件从多行、少列“展平”到一行多列 我目前在pandas中有一个数据框(从Excel加载),最终需要更改数据的显示方式,以便以逻辑方式积累大量数据。下表试图说明我的要求 发件人: 致: 谢谢你的帮助 让我们使用stack,swaplevel,to_frame和T: df_out = df.stack().swaplevel(1,0).to_frame().T.sort_index(axis=1) 或者更好,(使用@piRSquared unstack解决方案) 输出: 1_C
谢谢你的帮助 让我们使用
stack
,swaplevel
,to_frame
和T
:
df_out = df.stack().swaplevel(1,0).to_frame().T.sort_index(axis=1)
或者更好,(使用@piRSquared unstack解决方案)
输出:
1_Chad 1_Ryan 1_Stephen 2_Chad 2_Ryan 2_Stephen
0 0.151 0.706 0.75 0.831 0.071 0.653
一句话,为了好玩
df.unstack().pipe(
lambda s: pd.DataFrame([s.values], columns=s.index.map('{0[0]}_{0[1]}'.format))
)
1_Ryan 1_Chad 1_Stephen 2_Ryan 2_Chad 2_Stephen
0 0.706 0.151 0.75 0.071 0.831 0.653
您可以使用Excel VBA创建一个嵌套的for循环,该循环将执行您需要的操作。仅转置有什么问题吗?@Wen,现在您有了!想想你现在能做的所有有趣的事情(-:df.unstack().pipe(lambda s:pd.DataFrame([s.values],columns=s.index.map(''.join)))为什么要在join上使用格式?哦,如果那些数字是整数而不是字符串,我不小心删除了注释><如果它们是列标题中的int,它就会断开。
df.rename(columns=int)。unstack().pipe(lambda s:pd.DataFrame([s.values],columns=s.index.map('''.join))
生成一个类型错误:序列项0:预期的str实例,找到int
。使用格式覆盖了我的后面。
df_out = df.unstack().to_frame().T
df_out.columns = df_out.columns.map('{0[0]}_{0[1]}'.format)
df_out
1_Chad 1_Ryan 1_Stephen 2_Chad 2_Ryan 2_Stephen
0 0.151 0.706 0.75 0.831 0.071 0.653
df.unstack().pipe(
lambda s: pd.DataFrame([s.values], columns=s.index.map('{0[0]}_{0[1]}'.format))
)
1_Ryan 1_Chad 1_Stephen 2_Ryan 2_Chad 2_Stephen
0 0.706 0.151 0.75 0.071 0.831 0.653