我试图访问DataFrame在Pandas中整个应用的函数中的行的索引.我有这样的事情:
df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c'])
>>> df
a b c
0 1 2 3
1 4 5 6
Run Code Online (Sandbox Code Playgroud)
我将定义一个访问具有给定行的元素的函数
def rowFunc(row):
return row['a'] + row['b'] * row['c']
Run Code Online (Sandbox Code Playgroud)
我可以像这样申请:
df['d'] = df.apply(rowFunc, axis=1)
>>> df
a b c d
0 1 2 3 7
1 4 5 6 34
Run Code Online (Sandbox Code Playgroud)
真棒!现在如果我想将索引合并到我的函数中呢?DataFrame添加之前的任何给定行的索引d都是Index([u'a', u'b', u'c', u'd'], dtype='object'),但我想要0和1.所以我不能只访问row.index.
我知道我可以在表中创建一个临时列来存储索引,但是我想知道它是否在某个行对象中存在.
我想格式化一系列字符串,以便索引在某处的字符串中.示例系列:
ser = pd.Series(['CT', 'NY', 'MT'], index=['Jessica', 'Eric', 'Toby'])
ser
Jessica CT
Eric NY
Toby MT
dtype: object
Run Code Online (Sandbox Code Playgroud)
所需的输出:
Jessica Jessica: CT
Eric Eric: NY
Toby Toby: MT
dtype: object
Run Code Online (Sandbox Code Playgroud)
我试过这个变种:
ser.apply(lambda x: "{}: {}".format(x.index, x))
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为它x.index引用的是索引方法str,而不是迭代的系列.