PAR*_*MAR 5 python python-3.x pandas
我的数据是这样的:
data = {'Sr.No.': Sr_no,
'CompanyNames': Company_Names,
'YourChoice1': ['45','45','45','45','45','45','45','45','45'],
'YourChoice2': ['45','45','45','45','45','45','45','45','45'],
'Bollinger Bands': {'Field1': ['45','45','45','45','45','45','45','45'],
'Field2': ['45','45','45','45','45','45','45','45'],
'Field3':['45','45','45','45','45','45','45','45']}
}
Run Code Online (Sandbox Code Playgroud)
我将其传递给数据框:
df = pd.DataFrame(data, columns = ['Sr.No.','CompanyNames','YourChoice1','YourChoice2','Bollinger Bands'])
Run Code Online (Sandbox Code Playgroud)
但我收到的错误是:
ValueError:将 dicts 与非系列混合可能会导致排序不明确。
谁能帮我这个?
CSV 文件应如下所示:
我尝试了这样的第一个解决方案:
df1 = pd.DataFrame(data, columns = ['Sr.No.', 'CompanyNames','YourChoice1','YourChoice2'])
bbands = data.pop('Bollinger Bands')
df2 = pd.DataFrame(bbands)
df = pd.concat([df1, df2], axis=1, keys=['','Bollinger Bands'])
Run Code Online (Sandbox Code Playgroud)
但我获得的输出为:
我希望“布林带”应该只出现在第一列中,而不是全部......”
所需的输出是:
| | | | |Bollinger Bands| | |
|Sr.No.|Comp | | |Field1 |Field2 |Field3 |
Run Code Online (Sandbox Code Playgroud)
pd.DataFrame需要一个包含列表值的字典,但您正在提供列表和字典值的不规则组合。
您想要的输出会分散注意力,因为它不符合常规MultiIndex,这应该避免空字符串作为第一级的标签。是的,您可以获得所需的输出以用于演示目的,但不建议以非结构化方式存储数据。
相反,我建议您在构建数据框之前展平字典:
data.update(data.pop('Bollinger Bands'))
Run Code Online (Sandbox Code Playgroud)
然后构造一个具有一个标头级别的常规数据帧:
df = pd.DataFrame(data, columns=['Sr.No.','CompanyNames','YourChoice1','YourChoice2',
'Field1', 'Field2', 'Field3'])
Run Code Online (Sandbox Code Playgroud)
这给出:
Sr.No. CompanyNames YourChoice1 YourChoice2 Field1 Field2 Field3
0 0 8 45 45 45 45 45
1 1 9 45 45 45 45 45
2 2 10 45 45 45 45 45
3 3 11 45 45 45 45 45
4 4 12 45 45 45 45 45
5 5 13 45 45 45 45 45
6 6 14 45 45 45 45 45
7 7 15 45 45 45 45 45
Run Code Online (Sandbox Code Playgroud)
上述示例的示例输入数据:
data = {'Sr.No.': list(range(8)),
'CompanyNames': list(range(8, 16)),
'YourChoice1': ['45','45','45','45','45','45','45','45'],
'YourChoice2': ['45','45','45','45','45','45','45','45'],
'Bollinger Bands': {'Field1': ['45','45','45','45','45','45','45','45'],
'Field2': ['45','45','45','45','45','45','45','45'],
'Field3':['45','45','45','45','45','45','45','45']}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2980 次 |
| 最近记录: |