2017-10-17 1 views
0

Je fais référence à this question que j'ai posté il y a des jours, je n'ai pas encore de réponses et je suspecte que la situation n'a pas été correctement décrite, j'ai fait mis en place qui serait plus facile à comprendre, et j'espère. obtenir plus d'attention des programmeurs expérimentés!Problèmes d'importation de chaînes pour former un chemin à partir d'un fichier .csv

j'oublié de mentionner, je suis en cours d'exécution Python 2 sur Jupyter

import pandas as pd 
from pandas import Series, DataFrame 

g_input_df = pd.read_csv('SetsLoc.csv') 
URL=g_input_df.iloc[0,0] 
c_input_df = pd.read_csv(URL) 
c_input_df = c_input_df.set_index("Parameter") 

root_path = c_input_df.loc["root_1"] 
input_rel_path = c_input_df.loc["root_2"] 
input_file_name = c_input_df.loc["file_name"] 

Cet article se lit d'une .csv une liste de chemins, un à la fois, chacun d'entre eux à un autre dirigeant .csv fichier qui contient l'entrée pour une simulation à mettre en place en utilisant python.

Les résultats du code ci-dessus peuvent être testés ici:

c_input_df 
Value Parameter 
root_1 C:/SimpleTest/ 
root_2 Input/ 
file_name Prop_1.csv 

URL 
'C:/SimpleTest/Sets/Set_1.csv' 

root_path+input_rel_path+input_file_name 
Value C:/SimpleTest/Input/Prop_1.csv 
dtype: object 

Property_1 = pd.read_csv('C:/SimpleTest/Input/Prop_1.csv') 
Property_1 
height weight 
0 100 50 
1 110 44 
2 98 42 

... d'autre part, si je tente d'utiliser varibales pour décrire le chemin du fichier et le nom que je reçois une erreur:

Property_1 = pd.read_csv(root_path+input_rel_path+input_file_name) 
Property_1 

Je reçois l'erreur suivante:

ValueErrorTraceback (most recent call last) 
<ipython-input-3-1d5306b6bdb5> in <module>() 
----> 1 Property_1 = pd.read_csv(root_path+input_rel_path+input_file_name) 
     2 Property_1 

C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\parsers.pyc in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision) 
    653      skip_blank_lines=skip_blank_lines) 
    654 
--> 655   return _read(filepath_or_buffer, kwds) 
    656 
    657  parser_f.__name__ = name 

C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\parsers.pyc in _read(filepath_or_buffer, kwds) 
    390  compression = _infer_compression(filepath_or_buffer, compression) 
    391  filepath_or_buffer, _, compression = get_filepath_or_buffer(
--> 392   filepath_or_buffer, encoding, compression) 
    393  kwds['compression'] = compression 
    394 

C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\common.pyc in get_filepath_or_buffer(filepath_or_buffer, encoding, compression) 
    208  if not is_file_like(filepath_or_buffer): 
    209   msg = "Invalid file path or buffer object type: {_type}" 
--> 210   raise ValueError(msg.format(_type=type(filepath_or_buffer))) 
    211 
    212  return filepath_or_buffer, None, compression 

ValueError: Invalid file path or buffer object type: <class 'pandas.core.series.Series'>} 

Je beleive que le problème réside dans la façon dont le pa Les ramets qui composent le chemin et les fichiers sont lus à partir de la base de données, est-il possible de spécifier que ces paramètres sont des chemins, ou quelque chose de similaire qui permettra d'éviter ce problème?

Toute aide est fortement appréciée!

+0

rééd (root_path + input_rel_path + input_file_name) génère: « Valeur C:/SimpleTest/Input/Prop_1.csv \ ndtype: objet 'Merci beaucoup! – Pegaso

+0

Est-ce que 'Valeur C: /SimpleTest/Input/Prop_1.csv \ ndtype: object' donne une idée de l'origine du problème? – Pegaso

+0

SetsLoc.csv contient seulement une liste de noms de chemin et de fichier: {0 Path_and_name \t C: /SimpleTest/Sets/Set_1.csv C: /SimpleTest/Sets/Set_2.csv C:/SimpleTest/Sets/Set_3.csv} – Pegaso

Répondre