我有一个数据框:
df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Other', 'Year'])
Amy Bob Carl Chris Ben Other Year
0 2 4 7 8 1 3 2013
1 9 2 4 5 5 6 2014
和字典:
d = {'A': ['Amy'], 'B': ['Bob', 'Ben'], 'C': ['Carl', 'Chris']}
我想重塑我的数据框,使其看起来像这样:
Group Name Year Value
0 A Amy 2013 2
1 A Amy 2014 9
2 B Bob 2013 4
3 B Bob 2014 2
4 B Ben 2013 1
5 B Ben 2014 5
6 C Carl 2013 7
7 C Carl 2014 4
8 C Chris 2013 8
9 C Chris 2014 5
10 Other 2013 3
11 Other 2014 6
请注意,列Other
中没有任何值,Name
行的顺序无关紧要。我认为我应该使用该melt
函数,但我遇到的示例不太清楚。
melt
带您到那里。
In [29]: m = pd.melt(df, id_vars=['Year'], var_name='Name')
除了一切都有Group
。为了做到这一点,我们还需要重塑d
一点。
In [30]: d2 = {}
In [31]: for k, v in d.items():
for item in v:
d2[item] = k
....:
In [32]: d2
Out[32]: {'Amy': 'A', 'Ben': 'B', 'Bob': 'B', 'Carl': 'C', 'Chris': 'C'}
In [34]: m['Group'] = m['Name'].map(d2)
In [35]: m
Out[35]:
Year Name value Group
0 2013 Amy 2 A
1 2014 Amy 9 A
2 2013 Bob 4 B
3 2014 Bob 2 B
4 2013 Carl 7 C
.. ... ... ... ...
7 2014 Chris 5 C
8 2013 Ben 1 B
9 2014 Ben 5 B
10 2013 Other 3 NaN
11 2014 Other 6 NaN
[12 rows x 4 columns]
并将“其他”从Name
转移到Group
In [8]: mask = m['Name'] == 'Other'
In [9]: m.loc[mask, 'Name'] = ''
In [10]: m.loc[mask, 'Group'] = 'Other'
In [11]: m
Out[11]:
Year Name value Group
0 2013 Amy 2 A
1 2014 Amy 9 A
2 2013 Bob 4 B
3 2014 Bob 2 B
4 2013 Carl 7 C
.. ... ... ... ...
7 2014 Chris 5 C
8 2013 Ben 1 B
9 2014 Ben 5 B
10 2013 3 Other
11 2014 6 Other
[12 rows x 4 columns]
问题内容: 我无法弄清楚如何使用python中的Pandas进行“反向融化”。这是我的起始数据 这是我想要的输出: 我敢肯定有一个简单的方法可以做到这一点,但是我不知道怎么做。 问题答案: 有几种方法; 使用: 使用: 或后跟:
问题内容: 给定以下形式的方形熊猫DataFrame: 如何能在上三角熔化得到以下形式的矩阵 我对惯用的熊猫解决方案更感兴趣,自定义索引器将很容易手动编写… 预先感谢您的考虑和回应。 问题答案: 首先,我将的较低值转换为by和and ,然后设置列名称:
4.1. 四个置顶的警告! 从 0.25 起,pandas 只支持 Python 3.53 及以上版本了,不再支持 Python 2.7,还在使用 Python 2 的朋友可要注意了,享受不了新功能了,不过,貌似用 Python 2 做数据分析这事儿估计已经绝迹了吧! 下一版 pandas 将只支持 Python 3.6 及以上版本了,这是因为 f-strings 的缘故吗?嘿嘿。 彻底去掉了 P
问题内容: 在熊猫中,我具有以下数据框: 我想一次融化两列。也就是说,所需的输出是: 我知道标准融化: 但这会堆叠所有列 我如何一次融化两列?就像是: 会很好。 问题答案: 这是
我正在写学士论文。 我的主题是强化学习。设置: Unity3D (C#) 自己的神经网络框架 通过测试来训练正弦函数,确认网络工作正常。它可以近似。好有些价值观达不到他们的期望值,但这已经足够好了。当用单个值训练它时,它总是收敛的。 这是我的问题: 我试着教我的网络一个简单游戏的Q值函数,接球:在这个游戏中,它只需要接住一个从随机位置和随机角度落下的球。1如果接住-1如果失败 我的网络模型有 1
在PySpark中或者至少在Scala中,Apache Spark中是否有与Pandas Melt函数等价的函数? 到目前为止,我一直在用Python运行一个示例数据集,现在我想对整个数据集使用Spark。
问题内容: 显示大pandas数据框时是否可以隐藏索引,以便仅列名出现在表格的顶部? 这将需要同时适用于ipython笔记本中的html表示形式和to_latex()函数(我正在与nbconvert一起使用)。 助教。 问题答案: 组 对于ipython笔记本: 对于to_latex:
问题内容: 我想将数据框的几组列融合为多个目标列。与问题类似,Python Pandas将初始列的组融为多个目标列,并将pandas数据框重塑/将多个值变量堆叠为单独的列。但是,我需要通过列名而不是索引位置来明确地执行此操作。 原始数据框: 目标数据框 对此方法的建议深表感谢。 问题答案: 有一种更有效的方法来解决涉及熔化多组不同色谱柱的这类问题。专为这些确切情况而设计。