Чтобы загрузить DataFrame на FTP-сервер, вы можете использовать следующие методы с примерами кода:
Метод 1: использование ftplib
from ftplib import FTP
def upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename):
    # Convert DataFrame to CSV
    csv_data = dataframe.to_csv(index=False)
    # Connect to FTP server
    ftp = FTP(ftp_host)
    ftp.login(user=ftp_user, passwd=ftp_password)
    # Change to the desired directory
    ftp.cwd(ftp_directory)
    # Upload the CSV file
    ftp.storlines(f'STOR {filename}', open(filename, 'rb'))
    # Close the FTP connection
    ftp.quit()
# Usage example
dataframe = ...  # Your DataFrame
ftp_host = 'ftp.example.com'
ftp_user = 'username'
ftp_password = 'password'
ftp_directory = '/path/to/directory'
filename = 'data.csv'
upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename)Метод 2: использование ftputil
import ftputil
def upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename):
    # Convert DataFrame to CSV
    csv_data = dataframe.to_csv(index=False)
    # Connect to FTP server
    with ftputil.FTPHost(ftp_host, ftp_user, ftp_password) as ftp:
        # Change to the desired directory
        ftp.chdir(ftp_directory)
        # Upload the CSV file
        with ftp.open(filename, 'wb') as f:
            f.write(csv_data.encode())
# Usage example
dataframe = ...  # Your DataFrame
ftp_host = 'ftp.example.com'
ftp_user = 'username'
ftp_password = 'password'
ftp_directory = '/path/to/directory'
filename = 'data.csv'
upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename)Метод 3. Использование парамико
import paramiko
def upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename):
    # Convert DataFrame to CSV
    csv_data = dataframe.to_csv(index=False)
    # Connect to FTP server
    transport = paramiko.Transport((ftp_host, 22))
    transport.connect(username=ftp_user, password=ftp_password)
    sftp = transport.open_sftp()
    # Change to the desired directory
    sftp.chdir(ftp_directory)
    # Upload the CSV file
    with sftp.open(filename, 'w') as f:
        f.write(csv_data)
    # Close the SFTP connection
    sftp.close()
    transport.close()
# Usage example
dataframe = ...  # Your DataFrame
ftp_host = 'ftp.example.com'
ftp_user = 'username'
ftp_password = 'password'
ftp_directory = '/path/to/directory'
filename = 'data.csv'
upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename)