[解決済み】ValueError: 値の長さがインデックスの長さと一致しない|Pandas DataFrame.unique()
2021-12-30 17:23:09
質問
新しいデータセットを取得したり、現在のデータセットのカラムの値を一意の値に変更しようとしています。以下は、私が取得しようとしているものの例です。
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
実行すると、エラーが発生します。
ValueError: 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
関連
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
[解決済み] SQLエラー。ORA-01861:リテラルは、フォーマット文字列01861に一致しません。
-
[解決済み】SQLサーバーのテンポラリーテーブルで「すでに名前のついたオブジェクトがあります」エラーが発生する。
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
'INSERT文はFOREIGN KEY制約「FK_TourismReservation_Users」と競合していました。その
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] なぜ SQLAlchemy の count() は生のクエリよりずっと遅いのでしょうか?
-
[解決済み] utf8_general_ciとutf8_unicode_ciの違いは何ですか?