熊猫-将转换应用于DataFrame的索引

时间:2018-07-16 14:59:57

标签: python pandas dataframe

这是我的代码

import pandas as pd
x = pd.DataFrame.from_dict({'A':[1,2,3,4,5,6], 'B':[10, 20, 30, 44, 48, 81]})
a = x['A'].apply(lambda t: t%2==0) # works
c = x.index.apply(lambda t: t%2==0) # error

如何使该代码以最简单的方式工作?我知道如何reset_index()然后将其视为一列,但是我很好奇是否有可能像对待常规列一样对索引进行操作。

3 个答案:

答案 0 :(得分:2)

您必须使用to_seriesIndex转换为Series

c = x.index.to_series().apply(lambda t: t%2==0)

如果您要调用apply是因为Index对象没有apply方法

索引的方法和操作数量有限:http://pandas.pydata.org/pandas-docs/stable/api.html#modifying-and-computations

答案 1 :(得分:2)

Pandas尚未实现pd.Index.apply。对于简单的计算,您可以使用基础的NumPy数组:

c = x.index.values % 2 == 0

与基于lambda的解决方案不同,这利用了矢量化操作的优势。

答案 2 :(得分:1)

熊猫索引具有map方法:

c = x.index.map(lambda t: t%2==0)   # Index([True, False, True, False, True, False], dtype='object')

请注意,这将返回索引,而不是熊猫系列。