программа python для создания файла csv, где каждый столбец представляет собой данные синусоидальной волны

Требование состоит в том, чтобы сгенерировать файл csv, в котором каждый столбец представляет собой данные синусоидальной волны с частотой 1 Гц, 2 Гц, 3 Гц, 4 Гц, 5 Гц, 6 Гц, 7 Гц. Таким образом, всего 7 столбцов.

100 волновых точек для 1 Гц и, таким образом, всего 100 x 700= 70 000 точек.

Может ли кто-нибудь объяснить, как кодировать это требование

1 ответ

Вы можете попробовать это. Здесь,

  1. Я использую Numpy для получения необходимых значений частоты.
  2. Затем скопируйте эти значения в кадр данных pandas.
  3. И, наконец, запишите его в файл csv.

Пожалуйста, обратитесь к этой ссылке для получения дополнительной полезной информации о синусоидах в Python.

      import numpy as np
import pandas as pd    

def get_values_for_frequency(freq):
    # sampling rate
    sr = 100.0
    # sampling interval
    ts = 1.0/sr
    t = np.arange(0,1,ts)

    # frequency of the signal
    freq = 5   
    y = np.sin(2*np.pi*freq*t)
    return y


df = pd.DataFrame(columns =['1Hz','2Hz', '3Hz', '4Hz', '5Hz', '6Hz', '7Hz'])

df['1Hz']=pd.Series(get_values_for_frequency(1))
df['2Hz']=pd.Series(get_values_for_frequency(2))
df['3Hz']=pd.Series(get_values_for_frequency(3))
df['4Hz']=pd.Series(get_values_for_frequency(4))
df['5Hz']=pd.Series(get_values_for_frequency(5))
df['6Hz']=pd.Series(get_values_for_frequency(6))
df['7Hz']=pd.Series(get_values_for_frequency(7))

df.to_csv('sine.csv', index=False)

Пример вывода из сгенерированного CSV-файла:

Другие вопросы по тегам