Python 从DataFrame提取的列具有不同的索引

Python 从DataFrame提取的列具有不同的索引,python,pandas,Python,Pandas,我遇到了以下情况: some_df.index #=> Int64Index([0, 1], dtype='int64') some_df['some_column'].index #=> Float64Index([7.0, 5.0], dtype='object') 为什么会这样?这是否意味着某些_df的构造方式有问题?最后,确保我从some_df中提取的列都使用与some_df本身相同的索引的最佳方法是什么 编辑:我深入到代码中,显然有一行只

我遇到了以下情况:

some_df.index                 #=> Int64Index([0, 1], dtype='int64')
some_df['some_column'].index  #=> Float64Index([7.0, 5.0], dtype='object')
为什么会这样?这是否意味着
某些_df
的构造方式有问题?最后,确保我从
some_df
中提取的列都使用与
some_df
本身相同的索引的最佳方法是什么


编辑:我深入到代码中,显然有一行只是重新分配了索引:
some_df['some_column].index=some_df['other_column']
。这有多严重?

目前尚不清楚这是否是一个bug,尽管分配给序列索引可能会引起问题(获得这种行为可能相当棘手)。。。你绝对不应该这样做

要确认事实确实如此,请执行以下操作:

In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])

In [12]: df
Out[12]:
   A  B
0  1  2
1  3  4

In [13]: df['A'].index
Out[13]: Int64Index([0, 1], dtype='int64')

In [14]: df['A'].index = [7., 8.]

In [15]: df['A'].index
Out[15]: Float64Index([7.0, 8.0], dtype='float64')

In [16]: df
Out[16]:
   A  B
0  1  2
1  3  4
因此,虽然这显然是有效的,但您将得到一些令人惊讶的(可能未定义的)行为

例如:

In [21]: df.groupby("A").sum()
Out[21]:
Empty DataFrame
Columns: [B]
Index: []

请发布原始数据、代码、熊猫、numpy和python版本,thanks@EdChum:我深入到代码中,显然有一行只是重新分配了索引:
some_df['some_column]=some_series
。这有多糟糕?对不起,我假设这是你的代码,而不是熊猫中的某个bug?@EdChum:是的,是第三方代码进行了重新分配,而不是熊猫代码。我只是想知道它有多正确,有多大可能会引起问题,等等。这取决于,我尝试将一个具有浮点索引的序列分配给一个具有int索引的df列,而该列的索引保持不变,您仍然需要发布原始输入数据以及最小的代码和库版本,否则,没有人能证实他们看到的和你看到的一样