私のサンプルデータセット:交換値ではない作業パンダ
import pandas as pd
import numpy as np
df = {'ID': ['A',0,0,1,'A',1],
'ID1':['Yes','Yes','No','No','Yes','Yes']}
df = pd.DataFrame(df)
私の本当のデータセットをExcelファイルから読み込まれ、列「ID1」は「はい」または「いいえ」を含んでいます。 'ID'列に1,0、Aが含まれています。 私がしたい:列「ID1」の
私は「A」を交換したい列「ID」の0
として1と「いいえ」と「はい」を交換したいです0
ように私は
# The values didn't change
df['ID1']=df['ID1'].replace(['Yes', 'No'], [1, 0])
# Or, The values didn't change
df['ID1']=df['ID1'].replace(['Yes', 'No'], [1, 0],inplace='ignore')
# Or, it turns 'A' to 'nan'
df['ID'] = df['ID'].map({1: 1, 0: 0, 'A':0})
# OR, it turns 'A' to 'nan'
df['ID'] = df['ID'].map({1: 1, 0: 0, 'A':0}, na_action=None)
私のコードは完璧に動作し、次の方法を試してみました私のサンプルデータセットのコードを実行して、シリーズをDF、に変換するサンプルデータセットを取得しても、私がExcelファイルから読み込んだ実際のデータセットでは機能しません。私はオンラインで検索しましたが、理由を理解できませんでした。実際のデータセットのこれらの列はオブジェクト型ですが、文字列に変換しようとしましたがまだ動作しません。
編集:私の本当のデータセット読み取るため
私のコード:
path =os.chdir(r"S:\path")
df1 = pd.read_excel('data.xlsx',skiprows=[0])
df1['ID']=df1['ID'].str.strip()
df1['ID'] = df1['ID'].map({'1': 1, '0': 0, 'A':0}, na_action=None)
df1['ID1']=df1['ID1'].str.strip()
df1['ID1']=df1['ID1'].replace(['Yes', 'No'], [1, 0])
df1.head()
Out[55]:
ID1 ID
0 1 NaN
1 1 NaN
2 1 NaN
3 1 0.0
4 1 NaN
を私はオンライン私のファイルをアップロードしたが、このリンクをチェックしてください:https://filebin.ca/3UAh5051Psnv/test.xlsx
、何かが働いているサンプルで動作していないものだと理由を把握するのは難しいだろうよく:-)実際の 'df.head()'を表示できますか? – Zero
@ジョン・ガルト私の編集を参照してください、どういうわけか、これらの列には何もありません。何が起こっているのですか... – Jessica
あなたはシートの構造を共有していないとき、 'pd.read_excel'を呼び出します。 – cmaher