如何从 numpy 数组中获取值到 pandas 数据帧
How to get value from numpy array into pandas dataframe
我正在 trim使用 librosa 制作一些音频文件。这工作正常,但我不想保存 trimmed 文件,而是想获得 trimming 之前和 trimming 之后的长度。我现在拥有的代码可以打印我需要的所有信息,我只需要将其放入 pandas 数据框中,其中 column1 = 文件名,column2 = [=21= 之前的长度],column3 = [=21 之后的长度=].我不需要 'sr'。我似乎无法弄清楚如何正确地做到这一点...感谢帮助。
代码如下:
for file in files:
print(file)
audio, sr = librosa.load(file, sr= 16000, mono=True)
print(audio.shape, sr)
trimmed = librosa.effects.trim(audio, top_db= 45)
print(trimmed[0].shape, sr)
这是我使用 print 命令得到的输出:
/Desktop/py_scripts/audio_experiments/wav/1031_8637_73170.wav
(39680,) 16000
(38144,) 16000
/Desktop/py_scripts/audio_experiments/wav/1060_8777_76783.wav
(28160,) 16000
(28160,) 16000
/Desktop/py_scripts/audio_experiments/wav/1128_8634_82873.wav
(74240,) 16000
(74240,) 16000
您应该将数据收集到列表或字典中,然后使用它来构建数据框
import pandas as pd
file_lst, len_before_lst, len_after_lst = [], [], []
for file in files:
file_lst.append(file)
audio, sr = librosa.load(file, sr= 16000, mono=True)
len_before_lst.append(audio.shape[0])
trimmed = librosa.effects.trim(audio, top_db= 45)
len_after_lst.append(trimmed[0].shape)
df = pd.DataFrame([file_lst, len_before_lst, len_after_lst], index=['filename', 'len_before', 'len_after']).T
我正在 trim使用 librosa 制作一些音频文件。这工作正常,但我不想保存 trimmed 文件,而是想获得 trimming 之前和 trimming 之后的长度。我现在拥有的代码可以打印我需要的所有信息,我只需要将其放入 pandas 数据框中,其中 column1 = 文件名,column2 = [=21= 之前的长度],column3 = [=21 之后的长度=].我不需要 'sr'。我似乎无法弄清楚如何正确地做到这一点...感谢帮助。
代码如下:
for file in files:
print(file)
audio, sr = librosa.load(file, sr= 16000, mono=True)
print(audio.shape, sr)
trimmed = librosa.effects.trim(audio, top_db= 45)
print(trimmed[0].shape, sr)
这是我使用 print 命令得到的输出:
/Desktop/py_scripts/audio_experiments/wav/1031_8637_73170.wav
(39680,) 16000
(38144,) 16000
/Desktop/py_scripts/audio_experiments/wav/1060_8777_76783.wav
(28160,) 16000
(28160,) 16000
/Desktop/py_scripts/audio_experiments/wav/1128_8634_82873.wav
(74240,) 16000
(74240,) 16000
您应该将数据收集到列表或字典中,然后使用它来构建数据框
import pandas as pd
file_lst, len_before_lst, len_after_lst = [], [], []
for file in files:
file_lst.append(file)
audio, sr = librosa.load(file, sr= 16000, mono=True)
len_before_lst.append(audio.shape[0])
trimmed = librosa.effects.trim(audio, top_db= 45)
len_after_lst.append(trimmed[0].shape)
df = pd.DataFrame([file_lst, len_before_lst, len_after_lst], index=['filename', 'len_before', 'len_after']).T