伙计们,
我有一个这样的字典:
dic = {}
dic['A'] = 1
dic['B'] = np.array([1,2,3])
dic['C'] = np.array([1,2,3,4])
dic['D'] = np.array([6,7])
然后我尝试将它们放入DataFrame中(也可能在以后插入更多行,但是每个元素的数组长度可能是可变的),出于某些原因,我想将它们保留为每列的整个对象,当打印,看起来像:
A B C D
1 [1,2,3] [1,2,3,4] [6,7]
......
[2,3] [7,8] [5,6,7,2] 4
当我尝试通过以下方式进行操作时:
pd.DataFrame.from_dict(dic)
我总是会收到错误:ValueError:数组的长度必须相同
无论如何,我是否有将整个数组保持为单个元素的方法,但是有时候我也有一些单个值吗?
答案 0 :(得分:0)
我不确定为什么您需要输入作为词典。但是,如果您将元素作为numpy数组传递,它将使用NaN转换缺少的值。
import React from 'react';
import { Layout, Menu, Icon } from 'antd';
import { NavLink } from 'react-router-dom';
const { Sider } = Layout;
const SubMenu = Menu.SubMenu;
class SideMenu extends React.Component {
render() {
return (
<Sider
trigger={null}
collapsible
collapsed={this.props.collapsed}
>
<div className="logo"/>
<Menu theme="dark" mode="inline" defaultSelectedKeys={['1']}>
<Menu.Item key="1">
<NavLink to="/home">
<Icon type="home"/>
<span>home</span>
</NavLink>
</Menu.Item>
<Menu.Item key="2">
<NavLink to="/page1">
<Icon type="star-o"/>
<span>page 1</span>
</NavLink>
</Menu.Item>
</Menu>
</Sider>
);
}
}
export default SideMenu;
输出:-
public static string RemoveSpaces(this String Value)
{
RegexOptions options = RegexOptions.None;
Regex regex = new Regex(@"[ ]{2,}", options);
return regex.Replace(Value.Trim(), @" ");
}
答案 1 :(得分:0)
IIUC应该可以工作
import pandas as pd
import numpy as np
df = pd.DataFrame({"A":[1, np.array([2,3])],
"B":[np.array([1,2,3]), np.array([7,8])],
"C":[np.array([1,2,3,4]), np.array([5,6,7,2])],
"D":[np.array([6,7]), 4]})
所以df.to_dict()
返回
{'A': {0: 1, 1: array([2, 3])},
'B': {0: array([1, 2, 3]), 1: array([7, 8])},
'C': {0: array([1, 2, 3, 4]), 1: array([5, 6, 7, 2])},
'D': {0: array([6, 7]), 1: 4}}
更新
如果要保存到文件,则应考虑使用列表而不是numpy数组,并使用delimiter=';'
答案 2 :(得分:0)
如果要保持这种形状,可以将数组转换为字符串。