簡體   English   中英

如何根據條件在 pandas dataframe 中創建一個新列?

[英]How to create a new column in pandas dataframe based on a condition?

我有一個包含以下列的數據框:

d = {'find_no': [1, 2, 3], 'zip_code': [32351, 19207, 8723]}
df = pd.DataFrame(data=d)

當 zip_code 列中有 5 位數字時,我想返回 True。 當沒有 5 位數字時,我想返回“find_no”。 示例 output 的結果將添加到 dataframe 的列中,對應於它引用的行。

你可以試試 np.where:

import numpy as np

df['result'] = np.where(df['zip_code'].astype(str).str.len() == 5, True, df['find_no'])

這種方法的唯一缺點是 NumPy 會將您的 True 值轉換為 1,這可能會造成混淆。 保持你想要的價值觀的一種方法是

import numpy as np

df['result'] = np.where(df['zip_code'].astype(str).str.len() == 5, 'True', df['find_no'].astype(str))

這里的缺點是你通過將它們轉換為字符串而失去了這些值的意義。 我想這完全取決於您希望實現的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM