2017-07-14 4 views
0

次のように私は25列のデータフレーム(例えば)を有すると仮定:特定のデータフレームからデータフレームを形成する方法は?

A   B   C  ...... I    J ......... Y 

I-1  yes  3    1-2-2017  100   james 

I-2  no  4    NaN   100   ashok 

I-3  NaN  9    2-10-2017  5    mary 

I-4  yes  NaN    2-10-2017  0    sania 

I a)は最初のデータフレームがに列Aから成るよう

ことを上記データフレームから3つのデータフレームを取得したいですG

B)は、第2のデータフレームは、列A及び列から成るI J.

C)第3データフレームは

をYに、列Aおよび列Kから成り

どのように私はそれにアプローチする必要がありますか? (一部だけ列の値が示され、必要に応じて好ましくはPythonで、私はより多くを表示します。。。)

答えて

1

あなたはjoinと組み合わせてlocを使用して、新しいデータフレームを作成することができます。

df_a_to_g = df.loc[:, 'A':'G'] 
df_a_and_i_to_j = df.loc[:, ['A']].join(df.loc[:, 'I':'J']) 
df_a_and_k_to_y = df.loc[:, ['A']].join(df.loc[:, 'K':'Y']) 

選択したい場合はカラムの数値 "あなたの代わりにlocilocを使用することができます。

# Select first column and columns 11 through 25. 
# We have to slice with 12:27 because indexing starts with 0, 
# so 12 equals to column number 11. The destination index '27' 
# equals to column 26, from which we have to subtract 1 because 
# the last element is exclusive in numerical slicing. 
df_new = df.iloc[:, [0]].join(df.iloc[:, 12:27]) 
+0

は、私たちが列名または列のアルファベット順の位置/指標に依存する必要はありません任意の代替方法はありますか?列名のシーケンスがA、B、I、E、F、H、Kなどのように混乱した場合、最初のデータフレームが列1と列2から列3 7番目のデータフレームは列1と列9から10で構成され、3番目のデータフレームは列1と列11から列25で構成されます。私はあなたのメソッドが動作すると思いますが、私は何とか数字の位置/列のインデックスを使用することができたらうれしいです。 – dravid07

+0

私は列の数値スライスを示すために私の答えを拡張しました。あなたの意思を最初から明確にするために、将来の質問を覚えておいてください。 g。 '列名A、B、D、Z、Jを指定すると、5〜9列をどのように抽出できますか?それは人々があなたの特定の問題を解決するために必要な答えを正確にあなたに与えることをより容易にします – Milo

+0

私は確かによりよい方法で私の意図を表現するでしょう。ご迷惑をおかけし申し訳ございません。ところで、ilocを使うとエラーが出ます: 'AttributeError: 'Series'オブジェクトに 'join'という属性がありません。 – dravid07

関連する問題