关于pandas的一点用法
哈咯 各位大神,关于DF的操作突然有点忘记就是我想对一个二维数组比如说x:10 *10 ,还有一个挑选的一维数据,这个数据为一列行数跟二维数组相同,比如说y :10 * 1我想对这个一维数组进行bull索引 举个简单的例子比如说 y %3 == 0: 这个返回一个bull的 seires我知道。
然后我想对这个返回的bull布尔series里条件为ture的行,在这个例子里就是0 , 3,6,9行的x中 的数据都*2 即x的0369行中每一个原有的值乘2,其他行都保持原值不变,我应该怎么操作?
提示:用 df.apply(..., axis=1) 阿奇_o 发表于 2022-6-30 03:07
提示:用 df.apply(..., axis=1)
能举个例子么 。。我这边不知道怎么利用两个条件
这样可否,参考代码:
import pandas as pd
df = pd.DataFrame(np.arange(100).reshape((10, 10)))
index =
df.iloc = df.iloc * 2
print(df) Twilight6 发表于 2022-7-1 08:41
这样可否,参考代码:
df.iloc = df.iloc * 2
df.iloc = 相当于对index行重新赋值了嘛!!! 可以的 可以的
但如果我这边其实是有个这样的需求就是对于一个100*100的数据,然后又一个100行的label然后这个label里有正有负,我需要把对应正例的行,在100*100的矩阵中每行对应的数*2 ,所以就是我先布尔索引df == 1,然后找出为true的index 然后在这样df.iloc = df.iloc * 2 套进去就可以了 对嘛!! Victor0321 发表于 2022-7-1 13:21
df.iloc = df.iloc * 2
df.iloc = 相当于对index行重新赋值了嘛!!! 可以的 可以的
但如果我这边其 ...
测试看看
Twilight6 发表于 2022-7-1 17:34
测试看看
不太行。。。
我这样写,报错了,,我想把b里对应者就是a中的行,b中哪个元素是sb ,那a中那一行对应的值全部*2
import pandas as pd
import numpy as np
a = pd.DataFrame(np.arange(100).reshape(10,10))
print(a)
b =["sb","sb","sb","sb","sb","1",'2',"sb","sb","sb",]
c = pd.DataFrame(b)
index__ = []
for i in c.index:
if c.iloc == "sb":
index__.append(i)
print(index__)
Traceback (most recent call last):
File "/home/victor/catkin_ws/src/test1/src/my.py", line 11, in <module>
if c.iloc == "sb":
File "/home/victor/anaconda3/lib/python3.9/site-packages/pandas/core/generic.py", line 1527, in __nonzero__
raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). Victor0321 发表于 2022-7-1 19:54
不太行。。。
我这样写,报错了,,我想把b里对应者就是a中的行,b中哪个元素是sb ,那a中那一行对应 ...
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(100).reshape((10, 10)))
b =["sb","sb","sb","sb","sb","1",'2',"sb","sb","sb"]
index = == "sb" for i in range(len(b))]
df.iloc = df.iloc * 2
print(df) Twilight6 发表于 2022-7-1 20:40
太强了!!!
页:
[1]