Pythonを始めたばかりなので、ここで愚かな質問をしないことを願っています...
だから私はパンダ「df_complete」レッツ・言う100行で、名前付き列を含む: 『タイプ』、 『作家』、 『ステータス』、 『という名前のデータフレームいるコルA』、 『コルC』私は/更新aを作成したいです。新しいデータフレームは「temp_df」という名前と「df_complete」の値を使用した条件に基づいて、それを作成します。
temp_df = pandas.DataFrame()
if ((df_complete['type'] == 'NDD') & (df_complete['writer'] == 'Mary') & (df_complete['status'] != '7')):
temp_df['col A'] = df_complete['col a']
temp_df['col B'] = 'good'
temp_df['col C'] = df_complete['col c']
ただし、これを行うと、次のエラーメッセージが表示されます。
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
私は、このスレッドを読んで、私の「および」「&」に変更:シリーズの真理値があいまいです。a.empty、a.bool()、a.item()、a.any()、またはa.all()を使用します
また、ここでこのスレッドを読んで、すべてを括弧で囲みます。dtyped[float64]配列をPandasDataFrameのタイプ[bool]のスカラーと比較します。
しかし、エラーはまだ存在しています。これは何が原因ですか?どうすれば修正できますか?
**フォローアップの質問**また、条件を満たした行のインデックス値を取得するにはどうすればよいですか?
私はあなたが必要だと思うboolean indexing
とix
列だけを選択するcol a
とcol c
:
temp_df = df_complete.ix[(df_complete['type'] == 'NDD') &
(df_complete['writer'] == 'Mary') &
(df_complete['status'] != '7'), ['col a','col c']]
#rename columns
temp_df = temp_df.rename(columns={'col a':'col A','col c':'col C'})
#add new column
temp_df['col B'] = 'good'
#reorder columns
temp_df = temp_df[['col A','col B','col C']]
サンプル:
df_complete = pd.DataFrame({'type': ['NDD','NDD','NT'],
'writer':['Mary','Mary','John'],
'status':['4','5','6'],
'col a': [1,3,5],
'col b': [5,3,6],
'col c': [7,4,3]}, index=[3,4,5])
print (df_complete)
col a col b col c status type writer
3 1 5 7 4 NDD Mary
4 3 3 4 5 NDD Mary
5 5 6 3 6 NT John
temp_df = df_complete.ix[(df_complete['type'] == 'NDD') &
(df_complete['writer'] == 'Mary') &
(df_complete['status'] != '7'), ['col a','col c']]
print (temp_df)
col a col c
3 1 7
4 3 4
temp_df = temp_df.rename(columns={'col a':'col A','col c':'col C'})
#add new column
temp_df['col B'] = 'good'
#reorder columns
temp_df = temp_df[['col A','col B','col C']]
print (temp_df)
col A col B col C
3 1 good 7
4 3 good 4
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加