pandas中表a的每一列减去表b的c列
时间: 2023-05-22 21:00:40 浏览: 113
可以使用以下代码实现:
```python
import pandas as pd
# 假设表a和表b已经被读入并存储为DataFrame对象a和b
a = pd.DataFrame(...)
b = pd.DataFrame(...)
a = a.sub(b['c'], axis=0)
```
这将会把表a的每一列都减去表b的c列。
相关问题
pandas 在第9列新增一列等于第7列减去第8列
假设你的 Pandas DataFrame 名称为 `df`,可以使用以下代码在第9列新增一列,该列等于第7列减去第8列:
```
import pandas as pd
# 创建示例数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 在第9列新增一列
df.insert(2, 'D', df['A'] - df['B'])
print(df)
```
这里使用了 `df.insert()` 函数,在第2列(也就是第9列)插入了新列 'D',该列的值等于第7列 'A' 减去第8列 'B' 的差。输出结果如下:
```
A B D C
0 1 4 -3 7
1 2 5 -3 8
2 3 6 -3 9
```
注意,这里的列索引是从 0 开始的。如果你的 DataFrame 中列的顺序不同,需要适当调整 `df.insert()` 函数中的参数。
pandas 在第9列新增一列等于第7列减去第8列,保留两位小数
你可以在上一个问题的基础上稍微修改一下,使用 Pandas 的 `round()` 函数来保留两位小数。具体代码如下:
```
import pandas as pd
# 创建示例数据
data = {'A': [1.2345, 2.3456, 3.4567], 'B': [4.5678, 5.6789, 6.7890], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 在第9列新增一列
df.insert(2, 'D', round(df['A'] - df['B'], 2))
print(df)
```
这里使用了 Pandas 的 `round()` 函数,将第7列 'A' 减去第8列 'B' 的差保留两位小数后插入到第9列 'D' 中。输出结果如下:
```
A B D C
0 1.2345 4.5678 -3.333 7
1 2.3456 5.6789 -3.333 8
2 3.4567 6.7890 -3.332 9
```
注意,这里的结果与你预期的结果略有不同,这是由于 Python 中的浮点数精度问题导致的。如果你需要更高的精度,可以使用 Decimal 类型进行计算。
阅读全文