(Excelファイルからインポートされた)日付を含む一連の列があり、次のように処理する必要があります。どのようにNaNを作成せずにデータフレームを処理するのですか?
これらの列のセルが空白の場合は、これは私にすべての1を合計し、それらの項目が欠落していることを示します。
これは私が現在であることやっている方法です:
df_combined['CDR_Form_notfound'] = np.where(df_combined['CDR-Form'].mask(df_combined['CDR-Form'].str.len()==0).isnull(),1,0)
私が午前問題は、私はA)日付が一日/月/年を示すためにトリミングされているように、これらの列をフォーマットする必要がありますB)列の中には、日付や空白ではなく、「see notes」という値があります。それは、欠落しているアイテムを適切に説明するためには「ノートを参照する」ことが不可欠であり、セルが空であると見なされないようにする必要があります。実際の問題は、上記の.isnullコードの前にこのコードを実行すると、evryの空白がNaNまたはnanまたはNaTになり、その後にNO/NOフラグがNULL /欠落として表示されることです。
これは、日付文字列をトリミングして "ノートを参照"を文字列に変更するためのコードです。そうでないと、出力で空白になります。
for c in df_combined[dateColumns]:
df_combined[c] = df_combined[c].astype(str) # uncomment this if columns change from dtype=str
df_combined[c] = np.where(df_combined[c].str.contains("20"), df_combined[c].str[:10], df_combined[c])
df_combined[c] = np.where(df_combined[c].str.contains("see notes"), df_combined[c].str, df_combined[c])
私の問題は、列のdtypesとは関係があると思います。私は、印刷(df.dtypes)を実行すると、すべての列は1を除いて、私はこれを具体的に使用してintに設定し、「オブジェクト」として示しています
df_combined['Num'] = df_combined['Num'].apply(lambda x: int(x) if x == x else "")
まあ、あなたは日付を持っているか、列にオブジェクトがあります。 1970-01-01のように、 "ノートを参照"を偽の日付に翻訳することを考えましたか?今は、文字列、日付、およびNaNを混ぜてみるためです。私は、日付とNaNをむしろ組み合わせます。それはパンダがサポートするものなのですから。 – mkastner