python-将熊猫数据框转换为结构化数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-将熊猫数据框转换为结构化数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1336字,纯文字阅读大概需要2分钟。
内容图文
![python-将熊猫数据框转换为结构化数组](/upload/InfoBanner/zyjiaocheng/695/1f18978749864fceb12547c104be490e.jpg)
我有以下熊猫数据框
import pandas as pd
a = [2.5,3.3]
b = [3.6,3.9]
D = {'A': a, 'B': b}
这给了我类似的东西
+---+-----+-----+
| | A | B |
+---+-----+-----+
| 0 | 2.5 | 3.3 |
| 1 | 3.6 | 3.9 |
+---+-----+-----+
我想将此数据帧转换为结构化数组,例如
data = np.rec.array([
('A', 2.5),
('A', 3.6),
('B', 3.3),
('B', 3.9),
], dtype = [('Type','|U5'),('Value', '<i8')])
由于我是熊猫新手,所以我没有找到实现这一目标的方法.我尝试了pd.to_records,但是索引妨碍了我的工作,我找不到解决办法.
任何帮助表示赞赏.谢谢.
解决方法:
Melt the DataFrame使A和B(列索引)成为一列.
要摆脱数字索引,请将此新列作为索引.然后调用to_records():
import pandas as pd
a = [2.5,3.3]
b = [3.6,3.9]
D = {'A': a, 'B': b}
df = pd.DataFrame(D)
result = (pd.melt(df, var_name='Type', value_name='Value')
.set_index('Type').to_records())
print(repr(result))
产量
rec.array([('A', 2.5), ('A', 3.3), ('B', 3.6), ('B', 3.9)],
dtype=[('Type', 'O'), ('Value', '<f8')])
这是关键步骤:
In [167]: df
Out[167]:
A B
0 2.5 3.6
1 3.3 3.9
In [168]: pd.melt(df)
Out[168]:
variable value
0 A 2.5
1 A 3.3
2 B 3.6
3 B 3.9
融化DataFrame之后,to_records(基本上)将返回所需的结果:
In [169]: pd.melt(df).to_records()
Out[169]:
rec.array([(0, 'A', 2.5), (1, 'A', 3.3), (2, 'B', 3.6), (3, 'B', 3.9)],
dtype=[('index', '<i8'), ('variable', 'O'), ('value', '<f8')])
内容总结
以上是互联网集市为您收集整理的python-将熊猫数据框转换为结构化数组全部内容,希望文章能够帮你解决python-将熊猫数据框转换为结构化数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。