如何在每个数据框中创建一个新列?新列必须将选项卡名称显示为新列中的每一行



新列Emp_no应该在第一个循环(第一个数据帧)中显示L&D1,在第二个

中显示L&D2(第二个数据帧)
xls = pd.ExcelFile('sheet2.xlsx')
i = 1
name = 'L&D'
for x in range(2):
string = name + str(i)
df1 = pd.read_excel(xls, string)
df1 = df1.loc[:, ~df1.columns.str.contains('^Unnamed')]
df1['Emp_No'] = string
df1 = df1.append(df1)
int(i)
i = i + 1

df1

目前所有行的输出都是'Emp_no'列中的L&D2,但它应该显示第一个循环数据为L&D1,第二个循环为L&D2

样品L&D1 &D2(表名)-这是期望的输出=

Name    Section  MVAL    SVAL   Emp_No(To be created)
string  string    int    int      L&D1    - FROM sheet 1
string  string    int    int     L&D1   - FROM sheet 1
string  string    int    int      L&D2  - From sheet 2
string  string    int    int      L&D2  - From sheet 2

不完全确定我理解这个问题,但如果我没有错,你想从这样的东西走?

dict_1 = {
"names" : "john jane joe jake".split(" "),
"Unnamed_0" : "25 30 32 45".split(),
"pos" : "ceo cfo admin janitor".split(),
"Unnamed_1": "ff oo bb aa".split()
}
df = pd.DataFrame(dict_1)
names   Unnamed_0   pos Unnamed_1
0   john    25     ceo      ff
1   jane    30     cfo      oo
2   joe     32     admin    bb
3   jake    45    janitor   aa

?

rename_cols = ["L&D"+str(i+1) for i in range(2)]
old_cols = list(df.loc[:, df.columns.str.contains('Unnamed')].columns)
mapper = dict(zip(old_cols, rename_cols))
new_df = df.rename(columns=mapper)
new_df
names L&D1      pos L&D2
0  john   25      ceo   ff
1  jane   30      cfo   oo
2   joe   32    admin   bb
3  jake   45  janitor   aa

让我知道。如果没有帮助,更多的信息肯定会有帮助。

相关内容

  • 没有找到相关文章

最新更新