私はcsvシートを持っていて、以下のように見えます。各列にはいくつかのデータがあります。名前でデータをフィルタリングしたい。名前を知っているので、そこからフィルタリングする必要があります。
Name gender address age post city
A M abc 20 dd ASD
C F xyz 21 ll KLM
B M lmn 22 mm NOP
のような出力が欲しい。
Name address post city
A abc dd ASD
B lmn mm NOP
以下のコードは明らかにcsvの最初のデータを上書きします。それを回避して修正する方法。また、Excelからインデックス列を削除したい。これをコーディングするためのより良い方法はありますか?ここでパンダは初めてです。
for i in ['A','B']: #The names list is huge , taking 2 as example
df=pd.read_csv('some.xlsx',index_col=False)
df1= df.loc[df['Name'] == i, ['Name','address','post','city']]
df1.to_csv('ABC.csv')
isinを使用してみてください:
例:
df=pd.read_csv('some.xlsx',index_col=False)
df1 = df.loc[df['Name'].isin(['A','B']), ['Name','address','post','city']]
df1.to_csv('ABC.csv')
isin
コメントに従って編集-ループを使用
df1 = None
for i in ['A','B']:
if df1 is not None:
df1 = df1.append( df.loc[df['Name'] == i, ['Name','address','post','city']] )
else:
df1 = df.loc[df['Name'] == i, ['Name','address','post','city']]
df1.to_csv(filename)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加