📅  最后修改于: 2023-12-03 15:33:24.969000             🧑  作者: Mango
Pandas是一个强大的Python库,用于处理数据,它提供了丰富的数据结构和函数,可以处理以各种方式组织或存储的数据。
在Pandas中,我们可以使用index来标识每个数据项的唯一性,索引是建立在Pandas的Series和DataFrame数据结构上的。然而有时候我们可能会遇到一个问题,即追加新的索引到已有的DataFrame时会忽略新索引。
假设我们有一个包含以下内容的DataFrame:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
print(df)
A B
a 1 4
b 2 5
c 3 6
现在,我们想要向这个DataFrame中添加一个新列,并设置用作索引的新值:
df['C'] = [7, 8, 9]
df = df.set_index(['C'], append=True)
print(df)
A B
C
a 7 1 4
b 8 2 5
c 9 3 6
大家会发现,新索引被无视了,而默认的整数索引被使用了。
为了解决这个问题,我们可以使用reindex
函数来指定索引:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
print(df)
df['C'] = [7, 8, 9]
df = df.set_index(['C'], append=True)
new_index = pd.MultiIndex.from_tuples(df.index.values)
df = df.reindex(index=new_index)
print(df)
A B
a 1 4
b 2 5
c 3 6
A B
C
7 a 1 4
8 b 2 5
9 c 3 6
我们可以看到,新索引成功地被添加到DataFrame中,这是因为我们先使用from_tuples
函数将索引转换成元组列表,然后使用reindex
函数来重新生成DataFrame的索引。
通过这个方法,我们可以向DataFrame中添加新的索引并保留原始的索引结构。
在Pandas中,使用reindex
函数可以补充任何缺失的值并指定索引,因此,即使我们在DataFrame上追加了新的索引,我们也可以使用reindex
函数来重新生成索引。