[解決済み】ValueError: 値の長さがインデックスの長さと一致しない|Pandas DataFrame.unique()
2022-01-12 11:32:16
質問
最近、新しいデータセットを実装したり、現在のデータセットのカラムの値を一意の値に変更したりする必要がありました。たとえば、次のような場合です。
A B
-----
0| 1 1
1| 2 5
2| 1 5
3| 7 9
4| 7 9
5| 8 9
Wanted Result Not Wanted Result
A B A B
----- -----
0| 1 1 0| 1 1
1| 2 5 1| 2 5
2| 7 9 2|
3| 8 3| 7 9
4|
5| 8
新しいdataFrameを使用する方法と使用しない方法の2つを試してみました。
#With New DataFrame
def UniqueResults(dataframe):
df = pd.DataFrame()
for col in dataframe:
S=pd.Series(dataframe[col].unique())
df[col]=S.values
return df
#Without new DataFrame
def UniqueResults(dataframe):
for col in dataframe:
dataframe[col]=dataframe[col].unique()
return dataframe
エラーが発生しました
Length of Values does not match length of index
解決方法は?
データフレームに長さの異なるnumpy配列のリストを代入しようとしているときに出るエラーで、以下のように再現できます。
4行のデータフレームです。
df = pd.DataFrame({'A': [1,2,3,4]})
今度は、2つの要素からなるリスト/配列を割り当てようとしています。
df['B'] = [3,4] # or df['B'] = np.array([3,4])
両方ともエラーアウト。
ValueError: 値の長さがインデックスの長さと一致しない
データフレームには4つの行がありますが、リストと配列には2つの要素しかないためです。
回避策 (use with caution): リスト/配列をpandasのSeriesに変換し、代入する際にSeriesの欠落したインデックスに NaN :
df['B'] = pd.Series([3,4])
df
# A B
#0 1 3.0
#1 2 4.0
#2 3 NaN # NaN because the value at index 2 and 3 doesn't exist in the Series
#3 4 NaN
もし、インデックスやカラム間の値の対応を気にしないのであれば、重複を削除した後、各カラムのインデックスをリセットすることができます。
df.apply(lambda col: col.drop_duplicates().reset_index(drop=True))
# A B
#0 1 1.0
#1 2 5.0
#2 7 9.0
#3 8 NaN
関連
-
[解決済み】アプリケーション起動メソッドで例外が発生 java.lang.reflect.InvocationTargetException
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] Pandasのデータフレームから行を選択するために値のリストを使用する
-
[解決済み] pandasのデータフレームのインデックスをカラムに変換する方法
-
[解決済み] PandasのデータフレームをSQLのように'in'と'not in'でフィルタリングする方法
-
[解決済み] pandas DataFrameの特定のセルに対して、インデックスを使用して値を設定する
-
[解決済み] 変数の値からpandas DataFrameを構築すると、「ValueError: すべてのスカラー値を使用する場合は、インデックスを渡す必要があります。"
-
[解決済み] pandas series/dataframeの行を整数インデックスで選択する。
-
[解決済み] データフレームをピボットするにはどうしたらいいですか?
-
[解決済み】Pandas - カラムの階層型インデックスを平坦化する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
コマンドによるフォルダの簡単なインクリメンタルバックアップ(win/linux)
-
非常に詳細な2つのシェルコードの例
-
パスワード入力を非表示にする InstallShield スクリプト
-
[解決済み] file(file, "rt") のエラー : complete.cases プログラム内の無効な 'description' 引数
-
[解決済み】lm.fit(x,y,offset = offset, singular.ok,...) boxcox式で0非NAケースでエラーになる。
-
[解決済み】入力文字列のフォーマットが正しくない
-
[解決済み】gitが「Pull is not possible because you have unmerged files」と言うのはなぜですか?
-
[解決済み] '\r': コマンドが見つかりません - .bashrc / .bash_profile [重複].
-
[解決済み】拡張メソッドは、一般的でない静的クラスで定義する必要がある
-
[解決済み】AdMobにアプリケーションを入れたら「ライブラリが見つからない」というエラーが出た