尝试弄清楚如何根据来自另一列的行值来转换特定列中的某些值

时间:2019-12-11 23:24:48

标签: python-3.x csv etl eda

以下是一个示例:

鉴于数据集是CSV文件:

Column 1  Column 2  Column 3
Site #    Type      Value
0         A         0.358 
0         B         12
1         B         84
1         A         3.879
1         B         4.823
0         A         9.7892
0         B         76.54
0         A         82
2         B         13.986
2         A         15.96
2         B         14.831
0         A         14

因此,我想对所有Site#='0'应用一个函数,将Value列乘以13或类似的值,然后保存该新表。像这样:

Column 1  Column 2  Column 3
Site #    Type      Value
0         A         4.654 
0         B         156
1         B         84
1         A         3.879
1         B         4.823
0         A         127.2596
0         B         995.02
0         A         1066
2         B         13.986
2         A         15.96
2         B         14.831
0         A         182

我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用pandas库。

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.read_csv('csv_file')
>>> df.columns = ["Site", "Type", "Value"]
>>> df
   Site Type    Value
0     0    B  12.0000
1     1    B  84.0000
2     1    A   3.8790
3     1    B   4.8230
4     0    A   9.7892
5     0    B  76.5400
>>> df.Value = np.where(df.Site == 0, df.Value * 13, df.Value)
>>> df
   Site Type     Value
0     0    B  156.0000
1     1    B   84.0000
2     1    A    3.8790
3     1    B    4.8230
4     0    A  127.2596
5     0    B  995.0200