pythondataframe:如果更改索引,为什么值会更改为NaN?

2024-03-29 09:53:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想改变我的指数。我的数据帧如下:

partA = pd.DataFrame({'u1': 2, 'u2': 3, 'u3':4, 'u4':29, 'u5':4, 'u6':1, 'u7':323, 'u8':9, 'u9':7, 'u10':5}, index = [20])

它提供一个大小为(1,10)的数据帧,其中所有单元格都已填充。在

但是,当我为这个数据帧创建一个新的数据帧(在包含不同数据的原始代码中是必需的)并更改此数据帧的索引时,我的单元格的值都等于NaN。在

我知道我可以使用reset_index来更改索引,但我希望能够在一行中完成所有操作。在

我现在所做的是以下(导致了NaNs)

^{pr2}$

Tags: 数据dataframeindex指数pdu1u2u6
1条回答
网友
1楼 · 发布于 2024-03-29 09:53:40

您需要valuespartA转换为numpy array

partA = pd.DataFrame({'u1': 2, 'u2': 3, 'u3':4, 'u4':29, 'u5':4, 'u6':1, 
                      'u7':323, 'u8':9, 'u9':7, 'u10':5}, index = [20])
print (partA)
    u1  u10  u2  u3  u4  u5  u6   u7  u8  u9
20   2    5   3   4  29   4   1  323   9   7

partB = pd.DataFrame(partA.values,columns = ['A', 'B', 'C', 'D','E', 'F', 'G', 'H', 'I','J'])
print (partB)
   A  B  C  D   E  F  G    H  I  J
0  2  5  3  4  29  4  1  323  9  7

如果需要来自partA的索引:

^{pr2}$

您得到NaN,因为没有对齐列名,所以如果更改了姓氏(u7),您将得到值:

partB = pd.DataFrame(partA,
                     columns = ['A', 'B', 'C', 'D','E', 'F', 'G', 'H', 'I','u7'],
                     index = partA.index)
print (partB)
     A   B   C   D   E   F   G   H   I   u7
20 NaN NaN NaN NaN NaN NaN NaN NaN NaN  323

相关问题 更多 >