pandas中新增一列
时间: 2023-09-13 17:05:19 浏览: 142
pandas.DataFrame 根据条件新建列并赋值的方法
### 回答1:
在 pandas 中新增一列,可以使用 `df['new_column_name'] = new_column_values` 的方式,其中 `df` 是数据框的名称,`new_column_name` 是新列的名称,`new_column_values` 是新列的值。例如,如果想在数据框 `df` 中新增一列 `'col_name'`,并为这一列赋值为 `[1, 2, 3]`,可以这样写:
```
df['col_name'] = [1, 2, 3]
```
如果想要给新增的列赋上更复杂的值,可以使用计算或其他方式。例如,如果想要新增一列 `'col_name_2'`,并为这一列赋值为原来的某一列的数值的平方,可以这样写:
```
df['col_name_2'] = df['original_column'] ** 2
```
请注意,这里假设 `'original_column'` 是原来数据框中已经存在的一列。
### 回答2:
在pandas中,我们可以使用`[]`操作符来新增一列。首先,我们需要创建一个pandas的DataFrame对象,可以从文件或者其他数据源中读取数据,或者手动创建一个空的DataFrame对象。
接下来,我们可以使用`[]`操作符来指定新增的列名,并赋予该列一个Series对象的值。可以使用已存在的列或者其他计算结果来创建新列的值。
举个例子,假设我们有一个包含学生信息的DataFrame,包括学生的姓名、年龄和成绩。我们想要新增一列来表示学生是否及格,即成绩大于等于60分为及格。可以通过以下代码来新增该列:
```python
import pandas as pd
# 创建一个包含学生信息的DataFrame
data = {'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [18, 19, 20, 21],
'成绩': [75, 80, 58, 90]}
df = pd.DataFrame(data)
# 新增一列来表示学生是否及格
df['是否及格'] = df['成绩'] >= 60
print(df)
```
运行以上代码后,DataFrame会新增一列来表示学生是否及格。输出结果如下:
```
姓名 年龄 成绩 是否及格
0 张三 18 75 True
1 李四 19 80 True
2 王五 20 58 False
3 赵六 21 90 True
```
可以看到,新增的一列名为"是否及格",其值为布尔型,表示学生是否及格。
### 回答3:
在Pandas中,我们可以使用assign()函数来新增一列。assign()函数接受一个参数,用于指定新列的名称,并且可以使用已有的列进行计算生成新列。
例如,假设我们有一个名为df的DataFrame,其中包含了两列数据,分别是"age"和"gender"。现在我们想新增一列"age_group",根据"age"的值来划分为三个年龄组:"青年"、"中年"和"老年"。
首先,我们可以使用assign()函数来创建新列"age_group",像这样:
df = df.assign(age_group="")
这样就创建了一个名为"age_group"的空列。
接下来,我们可以使用apply()函数来计算"age_group"的值。apply()函数可以接受一个函数作为参数,该函数将应用于每一行数据,然后生成一个返回值。我们可以定义一个函数,根据"age"的值来判断所属的年龄组,并将其赋值给"age_group"列。
例如,我们可以这样定义一个函数:
def get_age_group(age):
if age < 30:
return "青年"
elif age < 60:
return "中年"
else:
return "老年"
然后,我们可以将这个函数应用于"age"列,生成"age_group"列的值:
df["age_group"] = df["age"].apply(get_age_group)
最后,我们可以查看DataFrame的结果:
print(df)
这样就成功地在Pandas中新增了一列"age_group",并根据"age"的值进行了划分。
阅读全文