用pandas判断A列 如果 A列值为"是" 则 B列值赋值到C列 如果A列值为"否" 则 C列为0 如果A列为 整数 则C列等于B列除以C列
时间: 2023-07-19 18:12:08 浏览: 129
可以使用pandas的apply函数实现这个功能。示例代码如下:
```python
import pandas as pd
def func(row):
if row['A'] == '是':
return row['B']
elif row['A'] == '否':
return 0
elif isinstance(row['A'], int):
return row['B'] / row['C']
df = pd.DataFrame({'A': ['是', '否', 10], 'B': [2, 3, 4], 'C': [3, 0, 2]})
df['C'] = df.apply(func, axis=1)
print(df)
```
输出结果为:
```
A B C
0 是 2 2.0
1 否 3 0.0
2 10 4 2.0
```
其中,func函数根据A列的值进行判断,并返回对应的值。apply函数将func应用到每一行上,并返回一个Series,将其赋值到C列即可。注意,这里需要使用`isinstance(row['A'], int)`判断A列是否为整数类型。
相关问题
请用python中的pandas完成:针对dataframe中的列(as)的取值进行判断并添加新的列(c),如果as的值为0或1则c赋值为a
好的,我理解了你的问题。以下是使用 Pandas 库实现的代码:
``` python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({'as': [0, 1, 2, 3, 4, 5]})
# 添加判断列c
df['c'] = df['as'].apply(lambda x: 'a' if x in [0, 1] else '')
print(df)
```
输出结果为:
```
as c
0 0 a
1 1 a
2 2
3 3
4 4
5 5
```
代码中,我们使用 Pandas 库中的 apply 方法,对 as 列的所有取值进行判断,并将结果存入新列 c 中。其中 lambda 函数中,如果 as 的值为 0 或 1,则返回 'a',否则返回空字符串。最终输出整个 DataFrame,包含新增的 c 列。
写一段python代码,使用pandas库处理excel表中列名为“A”的列值如果为空,则将列名为“B”和列名为“C”的两个列的值相加并赋值给A
假设我们有一个名为“data.xlsx”的Excel文件,其中包含三列数据“A”、“B”和“C”。
以下是处理该文件的Python代码:
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 如果“A”列的值为空,则将“B”列和“C”列的值相加并赋值给“A”列
df['A'] = df.apply(lambda row: row['B'] + row['C'] if pd.isna(row['A']) else row['A'], axis=1)
# 将处理后的数据写回Excel文件
df.to_excel('data_processed.xlsx', index=False)
```
这个代码使用`pandas`库读取Excel文件,并使用`apply`函数遍历每一行数据。如果“A”列的值为空,则将“B”列和“C”列的值相加并赋值给“A”列。最后,将处理后的数据写回到新的Excel文件“data_processed.xlsx”中。
阅读全文