复制数据框中的行并在不同的字段中添加 1 个值

Duplicate rows in dataframe and add 1 value in a different field

这里是初级开发人员。

目标: 实施第二个自动生成的行,其中一个项目已预填。第一行是空白的。

要求:

我想我必须用 lamda 函数做一些事情,但我不清楚如何从每个资源中只填充 1 行。

当前输出: 我在 pandas 数据框中有 table。控制台输出是我目前所拥有的。

这是我在脚本中的内容。

import pandas as pd
# Demo DF only
df1 = {
        'Name': ['Julia', 'David'],
        'Project': ['',''],
        'Task': ['',''],
        'Hours': ['','']
      }

df1 = pd.DataFrame(df1, columns=['Name', 'Project', 'Task','Hours'])
df1 = df1.assign(Project="Admin")
df_repeated = pd.concat([df1]*2, ignore_index=True)
df_repeated = df_repeated.sort_values(by=['Name'], ascending=True)
print(df_repeated)
pd.concat([df1, df1.assign(Project="Admin")],
          ignore_index=True).sort_values(["Name", "Project"])
#     Name Project Task Hours
# 1  David                   
# 3  David   Admin           
# 0  Julia                   
# 2  Julia   Admin           

您可以使用 numpy 的函数“where”在每隔一行中添加“管理员”:

df1 = pd.DataFrame(df1)
df_repeated = pd.concat([df1]*2, ignore_index=True)
df_repeated = df_repeated.sort_values(by=['Name'], ascending=True, ignore_index=True)
df_repeated['Project'] = np.where(df_repeated.index % 2, 'Admin', '')