我有一些列的pandas数据框:
>>data.columns.values
array(['Sheet', 'Row', 'Column', 'Cell', 'V0', 'Thx', 'dV', 'Vd'], dtype=object)
每一行包含工作表,行等的不同值。
根据工作表,行等的信息,我将创建一个PDF文件标题,如下所示:
title = Sheet%s_Row%s_Column%s_Cell%s.pdf
因此,我不想直接遍历DataFrame的每一行并每次都创建一个标题,而是想直接创建另一列称为
title
的字符串,并像这样存储不同的标题:data['title'] = "Sheet%s_Row%s_Column%s_Cell%s" % (data['Sheet'], data['Row'], data['Column'], data['Cell'])
但这不起作用,似乎是在每个
%s
内附加每个Serie我如何从每一行的信息创建此
title
列,而不必遍历整个DataFrame? 最佳答案
一种方法是将DataFrame.apply()
与axis=1
一起使用。范例-
data['title'] = data.apply(lambda row: "Sheet{}_Row{}_Column{}_Cell{}".format(row['Sheet'], row['Row'], row['Column'], row['Cell']) , axis=1)
演示-
In [52]: df = pd.DataFrame([['A','B'],['C','D'],['E','F']] , columns=['Sheet','row'])
In [53]: df
Out[53]:
Sheet row
0 A B
1 C D
2 E F
In [54]: df['title'] = df.apply(lambda row: "Sheet{}_row{}".format(row['Sheet'],row['row']) , axis=1)
In [55]: df
Out[55]:
Sheet row title
0 A B SheetA_rowB
1 C D SheetC_rowD
2 E F SheetE_rowF
关于python - Pandas 以前的专栏中的新专栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32602293/