ad_data 是个列表,其中每个元素都是一个dataframe,想要将每个df的第24列取倒数,但是不会切片。
错误代码如下:
for i in range(0,5):
ad_data[i][:,24]= 1/ad_data[i][:,24]
报错:'(slice(None, None, None), 24)' is an invalid key
请问是我切片写错了吗?还是其他错误呢?这种形式如何切片呢?
ad_data 是个列表,其中每个元素都是一个dataframe,想要将每个df的第24列取倒数,但是不会切片。
错误代码如下:
for i in range(0,5):
ad_data[i][:,24]= 1/ad_data[i][:,24]
报错:'(slice(None, None, None), 24)' is an invalid key
请问是我切片写错了吗?还是其他错误呢?这种形式如何切片呢?
使用iloc,ad_data[i].iloc[:,24]= 1import /ad_data[i].iloc[:,24]
示例:
import pandas as pd
d=[pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}),pd.DataFrame({'m':[2,3,1],'n':[3,3,5],'t':[5,6,7]}),pd.DataFrame({'x':[0,1,3],'y':[2,2,5],'z':[1,0,1]})]
for i in range(len(d)):
d[i].iloc[:, 2] = 1/d[i].iloc[:, 2]
print(d[i])
运行结果:
a b c
0 1 4 0.142857
1 2 5 0.125000
2 3 6 0.111111
m n t
0 2 3 0.200000
1 3 3 0.166667
2 1 5 0.142857
x y z
0 0 2 1.0
1 1 2 inf
2 3 5 1.0
如有帮助,请点击采纳按钮~~