программа python для создания файла csv, где каждый столбец представляет собой данные синусоидальной волны
Требование состоит в том, чтобы сгенерировать файл csv, в котором каждый столбец представляет собой данные синусоидальной волны с частотой 1 Гц, 2 Гц, 3 Гц, 4 Гц, 5 Гц, 6 Гц, 7 Гц. Таким образом, всего 7 столбцов.
100 волновых точек для 1 Гц и, таким образом, всего 100 x 700= 70 000 точек.
Может ли кто-нибудь объяснить, как кодировать это требование
1 ответ
Вы можете попробовать это. Здесь,
- Я использую Numpy для получения необходимых значений частоты.
- Затем скопируйте эти значения в кадр данных pandas.
- И, наконец, запишите его в файл 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-файла: