行中的过滤器值包含用于进一步计算的特定字符串

如何解决行中的过滤器值包含用于进一步计算的特定字符串

这是我的数据框:

In [2]: fruits = pd.DataFrame({"apple_price": [100,100,200,500,600,200],...:                        "cherry_price": [2,3,1,2,1],...:                        "banana_price": [2,4,5,3],...:                        "prices": ["apple_price","apple_price","cherry_price","banana_price",...:  "banana_price","apple_price"],...:                        "price_fruits": [100,200]})

In [3]: fruits
Out[3]:
   apple_price  cherry_price  banana_price        prices  price_fruits
0          100             2             2   apple_price           100
1          100             3             4   apple_price           100
2          200             1             5  cherry_price           100
3          500             0             2  banana_price             2
4          100             2             3  cherry_price             3
5          600             1             5  banana_price             5
6          200             1             3   apple_price           200

基本上,苹果 ["apple_price"] 的价格必须除以 100(因为 apple_price 中的价格以美分而不是欧元为单位),而其他水果的价格应保持不变。

所以这将是我期望的输出

In [5]: fruits_ad
Out[5]:
   apple_price  cherry_price  banana_price        prices  price_fruits  pr_fruits_adjusted
0          100             2             2   apple_price           100                   1
1          100             3             4   apple_price           100                   1
2          200             1             5  cherry_price           100                   1
3          500             0             2  banana_price             2                   2
4          100             2             3  cherry_price             3                   3
5          600             1             5  banana_price             5                   5
6          200             1             3   apple_price           200                   2

谢谢!

巧 拉

解决方法

根据条件对价格进行调整,可以这样做:

vec

您可以根据自己的要求更改条件。这里我写了一个条件,如果价格大于或等于 100,则应用调整。 fruits['pr_fruits_adjusted'] = np.where((fruits.price_fruits >=100),fruits['price_fruits']/100,fruits['price_fruits']).astype('int32')

,

对不起,伙计们,我匆忙弄乱了我的示例数据框。

所以你:

你从这里开始...

In [2]: fruits = pd.DataFrame({"Variety": ["apple_price","cherry_price","banana_price","apple_price","banana_price"
   ...: ],...:                        "Price": [100,2,3,200,3]})

In [3]: fruits
Out[3]:
        Variety  Price
0   apple_price    100
1  cherry_price      2
2  banana_price      3
3   apple_price    200
4  banana_price      3

这应该是预期的输出:

In [4]: fruits_adj = pd.DataFrame({"Variety": ["apple_price","banana_pr
   ...: ice"],^M
   ...:                            "Price": [100,3],^M
   ...:                            "Price_Adj": [1,3]})

In [5]: fruits_adj
Out[5]:
        Variety  Price  Price_Adj
0   apple_price    100          1
1  cherry_price      2          2
2  banana_price      3          3
3   apple_price    200          2
4  banana_price      3          3

简而言之,我正在寻找的代码将字符串拆分为“Variety”列并检查我是否包含“apple”,如果此条件 == True,您应该将 apple_price 的价格除以 100 否则取“价格”列中的相应水果。

所以这将是我的尝试,也许你有更优雅的东西:

In [6]: chk = fruits_adj['Variety'].str.contains(r'apple',na=True)

In [7]: fruits.loc[chk,"Price_Adj"] = fruits["Price"] / 100

In [8]: fruits.loc[~chk,"Price_Adj"] = fruits["Price"]

In [9]: fruits
Out[9]:
        Variety  Price  Price_Adj
0   apple_price    100        1.0
1  cherry_price      2        2.0
2  banana_price      3        3.0
3   apple_price    200        2.0
4  banana_price      3        3.0

干杯 拉

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?