如果dataframe的‘部件名称’列含有‘a', 则‘a’行新增一列并赋值为‘1’, 如果dataframe的‘部件名称’列含有‘b', 则‘b’行新增一列并赋值为‘2’
时间: 2023-07-24 15:43:44 浏览: 33
您可以使用 Pandas 库中的 apply 和 lambda 函数来实现此操作。具体的实现步骤如下:
1. 定义一个函数,该函数将根据 '部件名称' 列的值返回一个字典,其中包含需要添加到每行的新列名称和值。
```python
def add_column(row):
new_cols = {}
if 'a' in row['部件名称']:
new_cols['a'] = 1
if 'b' in row['部件名称']:
new_cols['b'] = 2
return new_cols
```
2. 使用 apply 和 lambda 函数将该函数应用于每一行,并将结果转换为 DataFrame。
```python
new_cols = df.apply(lambda row: add_column(row), axis=1)
new_df = pd.concat([df, new_cols.apply(pd.Series)], axis=1)
```
这将在原始 DataFrame 中添加新列 'a' 和 'b',并将它们的值设置为 1 和 2(如果行的 '部件名称' 列包含相应的字母)。
相关问题
pandas新增一列并赋值为原dataframe的某一列
可以使用如下代码在 Pandas 中新增一列并赋值为原 DataFrame 的某一列:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 新增一列并赋值为原 DataFrame 的某一列
df['C'] = df['A']
# 打印结果
print(df)
```
输出:
```
A B C
0 1 4 1
1 2 5 2
2 3 6 3
```
在这个示例中,我们创建了一个 DataFrame,然后使用 `df['C'] = df['A']` 新增了一列 `C` 并将其赋值为原 DataFrame 的列 `A`。最后打印出整个 DataFrame。
dataframe新增列并赋值为0
要给DataFrame新增一列并赋值为0,可以使用如下方式:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 新增一列C并赋值为0
df['C'] = 0
# 打印结果
print(df)
```
输出结果为:
```
A B C
0 1 4 0
1 2 5 0
2 3 6 0
```
也可以使用assign()方法来新增列并赋值为0,示例如下:
```python
# 使用assign()新增列D并赋值为0
df = df.assign(D=0)
# 打印结果
print(df)
```
输出结果为:
```
A B C D
0 1 4 0 0
1 2 5 0 0
2 3 6 0 0
```