如何强制pandas dataframe列为正常索引

时间:2018-01-19 16:36:48

标签: python pandas dataframe

我从字典中创建DataFrame。我希望将键用作索引,将值用作单个列。这是我到目前为止所做的事情:

import pandas as pd
my_counts = {"A": 43, "B": 42}
df = pd.DataFrame(pd.Series(my_counts, name=("count",)).rename_axis("letter"))

我得到以下内容:

       count
letter      
A         43
B         42

问题是我想与其他数据帧(具有相同的索引名称pd.concat)以及看似相同的单个列(letter)连接(使用count)这个问题,但我最终得到了 AssertionError: invalid dtype determination in get_concat_dtype

我发现其他数据框的列类型不同:Index(['count'], dtype='object')。上述数据框有MultiIndex(levels=[['count']], labels=[[0]])

如何确保我的数据框具有正常索引?

1 个答案:

答案 0 :(得分:1)

您可以通过删除',':

来阻止使用此代码的multiIndex列
df = pd.DataFrame(pd.Series(my_counts, name=("count")).rename_axis("letter"))

df.columns

输出:

Index(['count'], dtype='object')

或者你可以像这样展平你的多索引列:

df = pd.DataFrame(pd.Series(my_counts, name=("count",)).rename_axis("letter"))

df.columns = df.columns.map(''.join)

df.columns

输出:

Index(['count'], dtype='object')