如何在数据帧中添加一长列具有已定义名称的列,并给它们空值(python)

2024-03-28 14:43:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的数据帧(50+总列),其中有一个“Project_Type”列,其中有5个不同类型的项目可用。项目类型可以是“项目类型1”、“项目类型2”、“项目类型3”、“项目类型4”或“项目类型5”。我有其他列有各种性能度量(所有整数),因此我认为我需要将新列中的每个“Project_Type”规范化为1(如果为true)或0(如果为false),然后我可以在项目类型和性能度量上运行.corr()以查看是否存在任何相关性(例如某些项目类型的成本更高,成本更高)影响等)

我可以手动创建5个新的空白列

df['Proj1Normalize'] = ""
df['Proj2Normalize'] = ""

etc...

然后根据true或false得到一个值1或0,但是有没有一种更快的方法可以同时添加具有特定标题的空白列的大列表?这个例子很容易手动完成,但是我遇到了一些问题,我需要一次生成20多个新的“标准化”列,手动创建这些列太耗时了。在

如果有人能解释一种同时用多个不同值规范化一列的有效方法,这也会有帮助。在

我试过df['Proj1Normalize', 'Proj2Normalize', 'Proj3Normalize, etc] = ""但那没用。 我试着引用这个-Add multiple empty columns to pandas DataFrame-但是我不想让我的列像第一个例子那样只是一个字符名。在

示例:

现在我有:

^{pr2}$

我想要:

ProjectType   Dollars_Spent   Employees   Proj1   Proj 2   Proj3

0     Proj 1     1000     10     1     0     0
1     Proj 2     1800     12     0     1     0
2     Proj 1     800      14     1     0     0
3     Proj 3     980       5     0     0     1

任何帮助都会很好。在


Tags: 项目projectfalsetrue类型df度量type
2条回答

如果您的目标是将分类列编码为1/0,那么可以使用pandas.get_dummy来完成。 例如:

df = pd.DataFrame({'Type':[1,2,3,2]})
new_df = pd.get_dummies(df,columns=['Type'])

Out[6]: 
    Type_1  Type_2  Type_3
0     1.0     0.0     0.0
1     0.0     1.0     0.0
2     0.0     0.0     1.0
3     0.0     1.0     0.0
import pandas

df = pandas.DataFrame(data={'ProjectType':['Proj 1','Proj 2','Proj 1','Proj 3'], 'Dollars_Spent':[1000, 1800,800,980], 'Employees':[10, 12, 14, 5]},columns=('ProjectType','Dollars_Spent','Employees'))

df_New = pandas.concat([df, pandas.get_dummies(df['ProjectType'])], axis=1)
print(df_New)

  ProjectType  Dollars_Spent  Employees  Proj 1  Proj 2  Proj 3
0      Proj 1           1000         10       1       0       0
1      Proj 2           1800         12       0       1       0
2      Proj 1            800         14       1       0       0
3      Proj 3            980          5       0       0       1

If there is no need of ProjectType column, then can use: del df_New ['ProjectType']

如果您想查找有关get_dummies的其他信息,请检查https://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html

相关问题 更多 >