gpt4 book ai didi

python - 如何使用特定函数仅替换列中的 NaN 值?

转载 作者:行者123 更新时间:2023-12-04 08:09:57 26 4
gpt4 key购买 nike

我有一个看起来像这样的数据框:

article_id          title
NaN title_1
NaN title_2
NaN title_3
'202102011404103' title_4
'202102011404104' title_5
NaN title_6
我想将类似此代码的内容应用于 article_id 列中的 NaN 值:
from datetime import datetime
date = datetime.strftime(datetime.now(), "%Y%m%d%H%M")
df['article_id'] = [int(date + str("0"*(3-len(str(i)))) + str(i)) + 1 for i, k in df.reset_index().iterrows()]
而不是`datetime.now() 我想从 1 月 1 日开始。例如,我想要变量 date = '202101011348' 的值
在最终结果中,我希望 article_id 列的长度与第 4 行和第 5 行的长度相同,并从精确日期开始 (202101011348)
我坚持这样做:
df[df['article_id'].isna()]
然后应用上面的代码。
预期输出:
article_id          title
'202101011404106' title_1
'202101011404107' title_2
'202101011404108' title_3
'202102011404103' title_4
'202102011404104' title_5
'202101011404109' title_6
但是如何将其直接应用于 df,仅应用于 article_id 列中的 NaN 值?

最佳答案

您可以使用 applylambda以实现您的目标。
我在这里申请 now()函数到 NaN但它可以是您想要的任何方法。

import pandas as pd
import numpy as np
from datetime import datetime

df = pd.DataFrame({
"article_id": [np.NaN, np.NaN, np.NaN, "202101011212", "202101011313"],
"title": ["title_1", "title_2", "title_3", "title_4", "title_5"]
})

|------------------------------------------|
| | article_id | title |
|---|----------------------------|---------|
| 0 | NaN | title_1 |
| 1 | NaN | title_2 |
| 2 | NaN | title_3 |
| 3 | 202101011212 | title_4 |
| 4 | 202101011313 | title_5 |
|------------------------------------------|

df["article_id"] = df3["article_id"].apply(lambda x: datetime.now() if pd.isna(x) else x)

|------------------------------------------|
| | article_id | title |
|---|----------------------------|---------|
| 0 | 2021-02-03 13:16:29.438263 | title_1 |
| 1 | 2021-02-03 13:16:29.438269 |title_2 |
| 2 | 2021-02-03 13:16:29.438270 |title_3 |
| 3 | 202101011212 |title_4 |
| 4 | 202101011313 | title_5 |
|------------------------------------------|

关于python - 如何使用特定函数仅替换列中的 NaN 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66027895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com