根据列和索引Pandas的值创建字符串列

时间:2016-11-04 19:04:06

标签: python pandas

我有以下数据框:

    A   B
Tenor       
1   15.1726 0.138628
2   15.1726 0.147002
3   15.1726 0.155376
4   15.1726 0.163749
5   15.1726 0.172123

我希望能够通过连接前面的列(包括索引)来创建另一个包含字符串的列。例如,这些新列的第一行是:XXXX1XXXX15.1726XXXX0.138628

我怎么能在熊猫中做到这一点?如果我尝试在字符串公式中使用df[ColumnName],Pandas将始终带来索引,这会弄乱我的字符串。

3 个答案:

答案 0 :(得分:4)

你可以使用申请

df['NewCol'] = df.apply(lambda x: "XXXX" + str(x.name) + "XXXX" + str(x.A) + "XXXX" + str(x.B), axis=1)
从@Abdou

开始,还要短一点
df['joined'] = df.apply(lambda x: 'XXXX'+'XXXX'.join(map(str,x)),axis=1) 

答案 1 :(得分:1)

您可以尝试这样的事情:

df['newColumn'] = [("XXXX"+str(id)+"XXXX" +str(entry.A) + "XXXX" +str(entry.B)) for id,entry in df.iterrows()]

答案 2 :(得分:0)

我认为这很有趣

df.reset_index().applymap('XXXX{}'.format).sum(1)

0    XXXX1XXXX15.1726XXXX0.138628
1    XXXX2XXXX15.1726XXXX0.147002
2    XXXX3XXXX15.1726XXXX0.155376
3    XXXX4XXXX15.1726XXXX0.163749
4    XXXX5XXXX15.1726XXXX0.172123
dtype: object