我有以下示例DataFrame:
Item Num Price Type Sales Date
456 4 2017-12
456 1 2018-01
340 1 2017-12
340 1 2018-01
500 2 2017-12
500 1 2018-01
我想检查1月份价格类型为1的每个商品编号,如果价格类型在12月份不同,并标记该行。所以我希望我的输出是这样的:
Item_Num Price Type Sales Date Flag
456 4 2017-12 price type change
500 2 2017-12 price type change
我想到这样的事情:
for num in df.Item_Num:
print(desired rows)
答案 0 :(得分:2)
这是你想要的吗?
const path = require('path');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry : './src/index.js',
output : {
filename : 'bundle.js',
path : path.resolve(__dirname, 'dist')
},
devtool : 'inline-source-map',
devServer : {
// contentBase : './dist'
historyApiFallback: true
},
module : {
rules : [
{
test : /\.(js|jsx)$/,
exclude : /(node_modules|bower_components)/,
use : {
loader : 'babel-loader',
options : {
presets : [ 'env', 'react', 'stage-2' ]
}
}
},
{
test : /\.scss$/,
use : ExtractTextPlugin.extract({
use : [ {
loader : "css-loader"
}, {
loader : "sass-loader"
} ],
// use style-loader in
// development
fallback : "style-loader"
})
}
]
},
plugins : [
new ExtractTextPlugin("styles.css"),
new HtmlWebpackPlugin({
template : path.join(path.resolve(__dirname, 'dist'), 'index.html')
})
],
resolve : {
extensions : [ '.js', '.jsx' ]
}
};
你得到了
df['Sales Date'] = pd.to_datetime(df['Sales Date'])
cond = (df['Item Num'] == df['Item Num'].shift(-1)) & (df['Price Type'] != df['Price Type'].shift(-1))
df['Flag'] = np.where(cond, 'Price Type Change', '')
如果您只想比较2017年decemeber和2018年1月的值,您可以先使用
过滤数据框 Item Num Price Type Sales Date Flag
0 456 4 2017-12-01 Price Type Change
1 456 1 2018-01-01
2 340 1 2017-12-01
3 340 1 2018-01-01
4 500 2 2017-12-01 Price Type Change
5 500 1 2018-01-01