python dataframe指定列名的几列数据乘以-1并重新写入
时间: 2023-06-07 10:10:09 浏览: 115
DataFrame,该怎么实现?
可以使用 Pandas 库中的 loc 方法,先选定指定的几列,再对这几列的数据进行乘以-1操作,最后将结果重新写回到原 DataFrame 中相应的列。具体代码如下:
df.loc[:, ['列名1', '列名2', '列名3']] *= -1
# 将结果重新写回到原 DataFrame 中相应的列
df[['列名1', '列名2', '列名3']] = df.loc[:, ['列名1', '列名2', '列名3']]
相关问题
使用python3.9,将excel表格中根据列号指定几列的数值乘以设置的权值后相加,存到新的excel表格中
可以使用Python中的pandas库来实现此功能。以下是一个简单的示例代码:
```python
import pandas as pd
# 读取原始Excel文件
df = pd.read_excel('input.xlsx')
# 列号指定的列
cols = ['A', 'B', 'C']
# 设置的权值
weights = [0.5, 0.3, 0.2]
# 计算新列的值
df['new_col'] = df[cols].apply(lambda row: sum(row * weights), axis=1)
# 写入新的Excel文件
df.to_excel('output.xlsx', index=False)
```
在代码中,我们首先使用pandas库中的`read_excel`函数读取原始Excel文件。然后,我们指定需要计算的列号(例如'A', 'B', 'C'),以及这些列的权值(例如0.5, 0.3, 0.2)。接着,我们使用pandas中的`apply`函数计算新的列的值,并将其添加到DataFrame中。最后,我们使用pandas中的`to_excel`函数将结果写入新的Excel文件中。
注意,代码中的列号是指Excel表格中的列字母,而不是列索引。如果你想要根据列索引指定列,可以使用`iloc`函数代替`loc`函数。
xlwings读取pd.DataFrame第一列乘以第二列数据 是成本
可以使用xlwings的Range对象来读取DataFrame中的数据,并计算成本。具体实现可以参考以下代码:
```python
import xlwings as xw
import pandas as pd
# 读取Excel中的数据
wb = xw.Book('example.xlsx')
sheet = wb.sheets['Sheet1']
df = sheet.range('A1').options(pd.DataFrame, header=1, index=False, expand='table').value
# 计算成本
cost = df.iloc[:, 0] * df.iloc[:, 1]
# 将结果写入Excel
sheet.range('C1').value = cost
```
上述代码中,首先使用xlwings的Range对象读取Excel中的数据,并将其转换为DataFrame格式。然后,计算成本并将结果写入Excel。其中,`iloc[:, 0]`表示取DataFrame中的第一列数据,`iloc[:, 1]`表示取第二列数据。最终的成本结果存储在`cost`变量中,可以直接赋值给Excel中的单元格。
阅读全文