我在处理CSV格式的文件时,将其变为Dataframe格式,其中共有两列数据(Columns=a,b)
```python
a = [1,2,1,1,3,4,2,1,5,1]
b =[0.6,1.7,2.4,1.2,0.7,2.7,4.3,3.1,0.1,4.8]
```
a,b相互对应,其中我想把b中的值位于(0,1],(1,2],````(4,5]这些区间所对应的a的值进行修改。
假设对应法则为(0,1]的b对应的a改为0,以此类推
即修改后a的结果应为 [0,1,2,1,0,2,4,3,0,4]
此处为举例实际并非向下取整
你修改后的值是你列出来了吗?比如要修改后的值有一个列表变量?
以向下取整为例:其他处理方式可以自己写个函数代替math.floor(i),就可以处理出来一个需要的a的代替列,然后赋值给a列就行了
import math
import pandas as pd
df = pd.read_csv('test.csv')
print(df)
df['a'] = [math.floor(i) for i in df['b'].to_list()]
print(df)
按照你给的规则,如果你的数据量不是特别大的话可以用apply
a= pd.DataFrame({'a':[1,2,1,1,3,4,2,1,5,1],'b':[0.6,1.7,2.4,1.2,0.7,2.7,4.3,3.1,0.1,4.8]})
def func(x):
return math.floor(x)
df['a'] = df['b'].apply(func)
你的规则没看明白