小编Xav*_*orL的帖子

一种在多个数据集中映射数据的更好方法,具有多个数据映射规则

我有三个数据集(final_NNppt_codeherd_id),我想MapValuefinal_NN数据框中添加一个名为的新列,并且可以从其他两个数据框中检索要添加的值,规则在代码后的底部。

import pandas as pd

final_NN = pd.DataFrame({
    "number": [123, 456, "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown"],
    "ID": ["", "", "", "", "", "", "", "", 799, 813],
    "code": ["", "", "AA", "AA", "BB", "BB", "BB", "CC", "", ""]
})

ppt_code = pd.DataFrame({
    "code": ["AA", "AA", "BB", "BB", "CC"],
    "number": [11, 11, 22, 22, 33]
})

herd_id = pd.DataFrame({
    "ID": [799, 813],
    "number": [678, 789]
})

new_column = …
Run Code Online (Sandbox Code Playgroud)

python data-mapping data-analysis dataframe pandas

5
推荐指数
1
解决办法
188
查看次数

Pandas:从另一个 df 创建一个新的 df 包含组内的特定值

我有一个 df:

df2 = pd.DataFrame({
    'ID': ['James', 'James', 'James',
           'Max', 'Max', 'Max', 'Max', 'Max',
           'Park', 'Park', 'Park',
           'Tom', 'Tom', 'Tom', 'Tom'],
    'From_num': [78, 420, 'Started', 298, 78, 36, 298, 'Started', 28, 311, 'Started', 60, 520, 99, 'Started'],
    'To_num': [96, 78, 420, 36, 78, 78, 36, 298, 112, 28, 311, 150, 520, 78, 99],
    'Date': ['2020-05-12', '2020-02-02', '2019-06-18',
             '2019-08-26', '2019-06-20', '2019-01-30', '2018-10-23',
             '2018-08-29', '2020-05-21', '2019-11-22',
             '2019-04-12', '2019-10-16', '2019-08-26', '2018-12-11', '2018-10-09']})
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

       ID From_num  To_num        Date
0   James       78      96  2020-05-12
1 …
Run Code Online (Sandbox Code Playgroud)

python group-by filter dataframe pandas

5
推荐指数
2
解决办法
266
查看次数

Pandas:将日期列剪切为期间日期组/数据箱

我有一个数据框如下:

df = pd.DataFrame({'Id': ['abs1', 'abs2', 'abs3', 'plo2', '201805', '201806', '202011', 'pctx1'],
                   'Date': ['2021-06-15', '2021-06-13', '2021-06-07', '2021-05-30',
                            '2021-05-12', '2021-04-28', '2021-04-15', '2021-02-01']})
Run Code Online (Sandbox Code Playgroud)

我希望将日期列分成几个组,在一个新列中,称为Date_Bin,规则是:从今天的日期开始,如果日期中的值小于7天,那么新列中的值将是“最后7天”天”,如果该值距离今天小于 14 天且大于 7 天,则值为“7 到 14 天”,如果该值小于 30 天且大于 14 天,则值为“14 到 14 天” 30天,30到60天,60到90天,90天以上都是同样的逻辑。理想的输出是这样的:

       Id        Date           Date_Bin
0    abs1  2021-06-15        last 7 days
1    abs2  2021-06-13        last 7 days
2    abs3  2021-06-07       7 to 14 days
3    plo2  2021-05-30      14 to 30 days
4  201805  2021-05-10      30 to 60 days
5  201806  2021-04-28      30 to 60 days …
Run Code Online (Sandbox Code Playgroud)

datetime pandas pandas-groupby pandas-timeindex

4
推荐指数
1
解决办法
1835
查看次数

SQL添加一个新列,其值只能在几个固定选项中

我想在我的数据表中添加一个带有 SQL 的新列,如下所示,

CREATE TABLE brands (
    Brand varchar(255),
    Contact varchar(150),
    Address varchar(255),
    Location varchar(50),
)
Run Code Online (Sandbox Code Playgroud)

我想添加一个名为 country 的新列,该值只能从以下值中选择:“日本”、“新西兰”、“美国”、“法国” 在此处输入图片说明

我可以添加新列,但我不知道如何为该列设置有限的可选值。如果您有想法,请帮助。非常感谢

sql sql-server

0
推荐指数
1
解决办法
304
查看次数