Python.Pandas /: / В чем разница между первым и вторым кодами, так появился ли следующий код? - PullRequest
0 голосов
/ 03 сентября 2018

все. Почему файлы в первом коде запускаются, а файлы во втором коде не работают?

import pandas    


SD2=pd.read_csv('C:/Users/Jangsu/AppData/Local/Programs/Python/Python36-32/Sample data1.csv')
DF2=pd.DataFrame(SD2)
SD3=pd.read_csv('C:/Users/Jangsu/AppData/Local/Programs/Python/Python36-32/Sample data2.csv')
DF3=pd.DataFrame(SD3)
SD4=pd.read_csv('C:/Users/Jangsu/AppData/Local/Programs/Python/Python36-32/Sample data3.csv')
DF4=pd.DataFrame(SD4)
SD5=pd.read_csv('C:/Users/Jangsu/AppData/Local/Programs/Python/Python36-32/Sample data4.csv')
DF5=pd.DataFrame(SD5)(

result = pd.concat([DF1,DF2,DF3,DF4],axis=1, ignore_index=False)
print(result)
result.to_csv("savessssssssdata.csv",index=False)

Когда вы запускаете код первого файла, вы видите, что файл с этим кодом сохраняется нормально. Итак, позвольте мне показать вам второй код.

import pandas as pd
import serial
import time

SD=[]
DF=[]
for i in range(1,4):
    SD1=pd.read_csv('C:/Users/Jangsu/Desktop/Sample 
data'+str(i)+".csv")
    SD.append(SD1)
    DF1=pd.DataFrame(SD1)
    DF.append(DF1)
    DF1.to_csv('C:/Users/Jangsu/Desktop/Samspsle data'+str(i)+".csv",index=False)

resul=pd.concat([DF],axis=1, ignore_index=False)
print(resul)

resul.to_csv("'C:/Users/Jangsu/Desktop/ssssssscccc.csv", 
   index=False)

Первый код действует как комбинация файлов. Второй код - это код, который будет введен в DF, который будет считывать каждый CSV-файл, а затем использовать код, сохраненный в формате списка, для создания и сохранения одного фрейма данных. Но второй код имеет следующую ошибку:

Traceback (most recent call last):
File "C:/Users/Jangsu/AppData/Local/Programs/Python/Python36-32/csv-testss.py", line 14, in <module>
resul=pd.concat([DF],axis=1, ignore_index=False)
File "C:\Users\Jangsu\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\reshape\concat.py", line 225, in concat
copy=copy, sort=sort)
File "C:\Users\Jangsu\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\reshape\concat.py", line 286, in __init__
raise TypeError(msg)
TypeError: cannot concatenate object of type "<class 'list'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

В чем разница между двумя кодами и в чем правильный код?

1 Ответ

0 голосов
/ 03 сентября 2018

DF определяется как список, а [DF], таким образом, является списком списков, которые нельзя объединять как состояния ошибки. Если я правильно понимаю логику, вот что вы должны делать:

filenames = [
    f'C:/Users/Jangsu/Desktop/Sample data{i}.csv'
    for i in range(1, 4)
]

df = pd.concat(
    map(pd.read_csv, filenames), 
    axis=1, 
    ignore_index=False
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...