我正在尝试通过计算现有列的值在 Pandas 数据框中创建一个新列。
我有 3 个现有列(“launched_date”、“item_published_at”、“item_created_at”)
但是,我的“if row[column_name] is not None:”语句允许具有 NaN 值的列并且不会跳到下一个语句。
在下面的代码中,我不希望在第一个条件之后打印“nan”的值,我希望像“2018-08-17”这样的东西
df['adjusted_date'] = df.apply(lambda row: adjusted_date(row), axis=1)
def adjusted_launch(row):
if row['launched_date']is not None:
print(row['launched_date'])
exit()
adjusted_date = date_to_time_in_timezone(row['launched_date'])
elif row['item_published_at'] is not None:
adjusted_date = row['item_published_at']#make datetime in PST
else:
adjusted_date = row['item_created_at'] #make datetime in PST
return adjusted_date
如何正确构造此条件语句?
最佳答案
先在数据为空的地方填入“nan”为字符串
df.fillna("nan",inplace=True)
然后在函数中你可以应用 if 条件如下:
def adjusted_launch(row):
if row['launched_date'] !='nan':
......
第二个太阳
import numpy as np
df.fillna(np.nan,inplace=True)
#suggested by @ShadowRanger
def funct(row):
if row['col'].notnull():
pass
关于python - 不是 Python 3 和 Pandas 的 NaN 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57044240/