作成したときに値が複数の列に分割されたDataFrameがあります。私は2〜4列を1つにマージしたいと思います。Pandas - 複数の列の値をマージする
fish_frame: 0 1 2 3 \
0 735-8 NaN NaN NaN
1 NaN NaN NaN LIVE WGT
2 GBE COD NaN NaN 600
3 GBW COD NaN 11,189 NaN
4 GOM COD NaN 0 NaN
5 POLLOCK NaN NaN 1,103
6 WHAKE NaN NaN 12
7 GBE HADDOCK NaN 10,730 NaN
8 GBW HADDOCK NaN 64,147 NaN
9 GOM HADDOCK NaN 0 NaN
10 REDFISH NaN NaN 0
11 WITCH FLOUNDER NaN 370 NaN
12 PLAICE NaN NaN 622
13 GB WINTER FLOUNDER 54,315 NaN NaN
14 GOM WINTER FLOUNDER 653 NaN NaN
15 SNEMA WINTER FLOUNDER 14,601 NaN NaN
16 GB YELLOWTAIL NaN 1,663 NaN
17 SNEMA YELLOWTAIL NaN 1,370 NaN
18 CCGOM YELLOWTAIL 1,812 NaN NaN
4 6 package_deal_column Package_Price
0 NaN NaN Package Deal - $40,753.69 nan
1 NaN TOTAL Package Deal - $40,753.69 nan
2 NaN NaN Package Deal - $40,753.69 None
3 NaN NaN Package Deal - $40,753.69 None
4 Package Deal - $40,753.69 None Package Deal - $40,753.69 None
5 NaN NaN Package Deal - $40,753.69 None
6 NaN NaN Package Deal - $40,753.69 None
7 NaN NaN Package Deal - $40,753.69 None
8 NaN NaN Package Deal - $40,753.69 None
9 NaN NaN Package Deal - $40,753.69 None
10 NaN NaN Package Deal - $40,753.69 None
11 NaN NaN Package Deal - $40,753.69 None
12 NaN NaN Package Deal - $40,753.69 None
13 NaN None Package Deal - $40,753.69 None
14 NaN None Package Deal - $40,753.69 None
15 NaN None Package Deal - $40,753.69 None
16 NaN NaN Package Deal - $40,753.69 None
17 NaN NaN Package Deal - $40,753.69 None
18 NaN None Package Deal - $40,753.69 None
ご覧のとおり、weight
の値は複数の列に分割されています。
私はこの答えの方向(pandas merge columns in same dataframe)に続き、試してみました:
pd.DataFrame({'Column 2': pd.concat([fish_frame[1], fish_frame[2], fish_frame[3]])}).sort_index()
をそれはそれらをマージすることに成功しませんでした。コマンドを間違って使用したか、問題がより具体的であるかどうかではわかりません。
また、私は、これはそれを解決するとは思わなかったが、私は試してくださいでした:
fish_frame = fish_frame.dropna(axis=1, how='all')
が、それはDFを変化させませんでした。
これを解決する助けがあれば感謝します。
fish_frame = fish_frame.set_index(0).stack()
を行うと、生成何を:
fish_frame: 735-8 package_deal_column Package Deal - $40,753.69
Package_Price nan
NaN 3 LIVE WGT
6 TOTAL
package_deal_column Package Deal - $40,753.69
Package_Price nan
GBE COD 3 600
package_deal_column Package Deal - $40,753.69
GBW COD 2 11,189
package_deal_column Package Deal - $40,753.69
GOM COD 2 0
4 Package Deal - $40,753.69
package_deal_column Package Deal - $40,753.69
POLLOCK 3 1,103
package_deal_column Package Deal - $40,753.69
WHAKE 3 12
package_deal_column Package Deal - $40,753.69
GBE HADDOCK 2 10,730
package_deal_column Package Deal - $40,753.69
GBW HADDOCK 2 64,147
package_deal_column Package Deal - $40,753.69
GOM HADDOCK 2 0
package_deal_column Package Deal - $40,753.69
REDFISH 3 0
package_deal_column Package Deal - $40,753.69
WITCH FLOUNDER 2 370
package_deal_column Package Deal - $40,753.69
PLAICE 3 622
package_deal_column Package Deal - $40,753.69
GB WINTER FLOUNDER 1 54,315
package_deal_column Package Deal - $40,753.69
GOM WINTER FLOUNDER 1 653
package_deal_column Package Deal - $40,753.69
SNEMA WINTER FLOUNDER 1 14,601
package_deal_column Package Deal - $40,753.69
GB YELLOWTAIL 2 1,663
package_deal_column Package Deal - $40,753.69
SNEMA YELLOWTAIL 2 1,370
package_deal_column Package Deal - $40,753.69
CCGOM YELLOWTAIL 1 1,812
package_deal_column Package Deal - $40,753.69
''(0) 'で試してみましょう:' TypeError:reset_index()は予期しないキーワード引数 'name''を持っています – theprowler
reset_indexから名前パラメータを削除しましょう。ちょうどreset_index()。 –
それはそれらをマージしませんでした。値はまだ列2,3,4の間で分割されます – theprowler