复制数据框中的行并在不同的字段中添加 1 个值
Duplicate rows in dataframe and add 1 value in a different field
这里是初级开发人员。
目标:
实施第二个自动生成的行,其中一个项目已预填。第一行是空白的。
要求:
- 每个资源的第一行将保持空白。
- 第二行将有一个名为“Admin”的预生成项目名称。
- 每个资源的行必须相邻。
- 按 ASC 顺序对“名称”行进行排序。
- 这必须应用于整个数据集(约 900 个资源,为说明帮助而创建的演示 df)。
我想我必须用 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', '')
这里是初级开发人员。
目标: 实施第二个自动生成的行,其中一个项目已预填。第一行是空白的。
要求:
- 每个资源的第一行将保持空白。
- 第二行将有一个名为“Admin”的预生成项目名称。
- 每个资源的行必须相邻。
- 按 ASC 顺序对“名称”行进行排序。
- 这必须应用于整个数据集(约 900 个资源,为说明帮助而创建的演示 df)。
我想我必须用 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', '')