在 Pandas 的特定位置创建新列 [重复]

Posted

技术标签:

【中文标题】在 Pandas 的特定位置创建新列 [重复]【英文标题】:Creating a new column in a specific place in Pandas [duplicate] 【发布时间】:2020-09-16 07:12:09 【问题描述】:

我想在 Python 中创建一个新列并放置在特定位置。例如,让“示例”为以下数据框:

import pandas as pd    

example = pd.DataFrame(
            'name': ['alice','bob','charlie'],
            'age': [25,26,27],
            'job': ['manager','clerk','policeman'],
            'gender': ['female','male','male'],
            'nationality': ['french','german','american']
        )

我想创建一个新列来包含“年龄”列的值:

example['age_times_two']= example['age'] *2

然而,这段代码在数据框的末尾创建了一个列。我想把它放在第三列,或者换句话说,放在“年龄”列旁边的列。这是怎么做到的:

a) 通过为新列设置一个绝对位置(例如第三个位置)?

b) 通过为新列设置一个相对位置(例如“年龄”列的右侧)?

【问题讨论】:

你想要的输出是什么样的? 【参考方案1】:

您可以在此处使用df.insert

example.insert(2,'age_times_two',example['age']*2)
example
      name  age  age_times_two        job  gender nationality
0    alice   25             50    manager  female      french
1      bob   26             52      clerk    male      german
2  charlie   27             54  policeman    male    american

【讨论】:

令人惊讶的是,我根本不使用pd.DataFrame.insert。 +1 好答案。 将此问题添加为书签仅用于“df.insert”方法。 ++1。确实是很好的答案。 注意插入功能只能使用一次。再次运行它会给出 ValueError。【参考方案2】:

另一种方法:

example['age_times_two']= example['age'] *2

cols = example.columns.tolist()

cols = cols[:2]+cols[-1:]+cols[2:-1]

example = example[cols]

print(example)

.

      name  age  age_times_two        job  gender nationality
0    alice   25             50    manager  female      french
1      bob   26             52      clerk    male      german
2  charlie   27             54  policeman    male    american

【讨论】:

【参考方案3】:

这有点手动:

example['age_times_two']= example['age'] *2

cols = list(example.columns.values)
cols

你会得到一个所有列的列表,你可以手动重新排列它们并将它们放在下面的代码中

example = example[['name', 'age', 'age_times_two', 'job', 'gender', 'nationality']]

【讨论】:

以上是关于在 Pandas 的特定位置创建新列 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

根据其他两列的值在 Pandas 中创建一个新列[重复]

包含 Pandas 的新列中包含列表的值计数 [重复]

Pandas df 操作:如果其他列行重复,则带有值列表的新列 [重复]

将来自一个数据框的值合并到 Pandas 中的新列中[重复]

根据多个条件将新列添加到 Python Pandas DataFrame [重复]

根据熊猫数据框中其他列的条件和值创建新列[重复]