2017-11-20 6 views
0

特定のディレクトリからいくつかのCSVを読みたいので、csvの名前と同様に結果のデータフレームに名前を付ける必要があります。 私はコードを書きましたが、それはrigth構文ではないことを認識しています。 私はエラーが発生している横:read_csv結果のデータフレームに名前をつける

TypeError: 'str' object does not support item assignment 

マイコード:

import os  
for element in os.listdir('.'): 
     element[:-4] = read_csv(element) 

はあなたの助けをありがとう

+0

が辞書にあなたのデータフレームを入れて、次のように次にあなたが望む任意のデータフレームにアクセスすることができますか? os.listdir( '。')の要素の 'dfs = {}'と 'for:dfs [要素[: - 4]] = pd.read_csv(要素)'? –

+0

ありがとうございます。それは素晴らしい考えですが、私はまだdfs ["element1"]によってデータフレームにアクセスする必要があります...直接的にelement1 = DataFrame(element1)を持つ別の方法はありますか?ありがとうございます – Amy21

+0

存在しないか、難しい場合は辞書を使います。ありがとうございました。 – Amy21

答えて

0

次のように追加することにより、グローバルスコープを焼戻しすることを行うことができます。

import os 
for i in os.listdir('.'): 
    globals()[i] = pd.read_csv(i) 

しかし、それは非常に醜いです、@ JonClementsが指摘したように、ファイル名がPython変数の命名規則に従ってはいけません。変数名の付け方は次のとおりです。

Variables names must start with a letter or an underscore, such as: 
_underscore 
underscore_ 
The remainder of your variable name may consist of letters, numbers and underscores. 
password1 
n00b 
un_der_scores 

詳細については、linkをご確認ください。


最良の方法は、辞書を作成することです:

import os 
d = {} 
for i in os.listdir('.'): 
    d[i] = pd.read_csv(i) 

d['file1.csv']

+0

あなたのファイル名が 'some-file'の場合はどうなりますか?それを元に戻してくださいあなたはグローバル変数にデータフレームであった変数と、そうでない変数とを知っている一般的なケースの外で) –

+0

これはとにかくdict-compでも可能です: 'dfs = {fname [ :-4]:os.listdir( '。') 'などのfnameのpd.read_csv(fname)... –

+0

@JonClemあなたは正しいです。私は変数名がPythonの規則に従わないときには動作しないと指摘する答えを更新しました。ありがとう。 – MedAli

関連する問題