给出一个数据框
df = pd.DataFrame(np.random.randint(0,100,size=(15, 4)), columns=list('ABCD'))
我想列出一个顺序表,该表具有与数据框中的行数一样多的元素
l = [i for i in range(df['A'].count())]
然后将列表的每个元素(作为字符串)添加到数据帧中单列的末尾。
df['A'] = df['A'].apply(lambda x: str(x) + str(l[i]))
不起作用,因为它将整个列表作为字符串添加到每个值,而不是数据框中每个值的列表值。
基本上,我想转型
A B C
23 16 85
9 74 12
99 24 83
到
A B C
231 16 85
92 74 12
993 24 83
因此无论如何都可以。
感谢您的帮助!
答案 0 :(得分:4)
尝试:
df['A'] = df.A.astype(str) + (df.index+1).astype(str)
>>> df
A B C
0 231 16 85
1 92 74 12
2 993 24 83
假设您的数据框具有常规RangeIndex
。如果没有,您可以使用:
df['A'] = df.A.astype(str) + (df.reset_index().index + 1).astype(str)
或
df['A'] = df.A.astype(str) + (pd.RangeIndex(len(df)) + 1).astype(str)