如果你不想手写字母表,你可以这样做:import pandas as pddf = {'a': (1,2,3)}dd = pd.DataFrame(df)numcopies = 4 #how many copies you want of the original column named 'a'names = [chr(ord('a') + i) for i in range(1, numcopies+1)]for n in names: dd[n] = dd['a']chr()和ord()是内置函数,可以方便地生成字母/字符序列。评论后编辑它的更简洁版本(无需将名称存储在变量中)是:for i in range(1, numcopies+1): dd[chr(ord('a') + i)] = dd['a']编辑:具有多个字符的列名如果您想复制很多列,请查看此答案。这是一种仅基于输入数字生成长度超过 1 个字符的字符串序列的好方法(因此您不会以奇怪的符号作为名称列结束)。你可以做:for i in range(1, numcopies+1): dd[colnum_string(i)] = dd['a']column_string上面链接中定义的函数在哪里。
您可以使用string.ascii_lowercaseandDataFrame.assign一种有效的方法来执行此操作:from string import ascii_lowercasedf = {'a': (1,2,3)}df = pd.DataFrame(df)# where n is the number of columns you wantn = 5df_new = df.assign(**{x: df.iloc[:, 0] for x in ascii_lowercase[:n]})print(df_new)[输出] a b c d e0 1 1 1 1 11 2 2 2 2 22 3 3 3 3 3