如何在Python中选择行字作为列

2024-04-27 15:08:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从行中选择单词作为列,然后从行中删除相同的单词

我试着去看熊猫的功能,比如,支点和其他类似的东西,但没有看到

这是我的意见

['Sampling frequency: 8000 Hz',
 'Number of channels: 2 (16-bit integer)',
 'File name: /home/niraj/Documents/audiofiles/M1F1-int16.wav',
 'Sampling frequency: 8000',
 'Sampling frequency: 16000 Hz',
 'Number of channels: 1 (16-bit integer)',
 'File name: /home/niraj/Documents/jg00b1ss.wav',
 'Sampling frequency: 16000',
 'sample_rate: 16000',
 'Sampling frequency: 8000 Hz',
 'Number of channels: 2 (16-bit integer)',
 'File name: /home/niraj/Documents/M1F1-int16.wav',
 'Sampling frequency: 8000']

我期望的输出是

    File name                sample_rate   Sampling frequency    Number of channels                                        
0  /home/niraj/Documents...  16000           8000Hz               2(16-bit integer)

如果找不到信息,则可以为空或不适用


Tags: ofnamenumberhomebitinteger单词documents
1条回答
网友
1楼 · 发布于 2024-04-27 15:08:04

IIUC中,每个记录都以“采样频率”数据开始,并以一些可能存在或不存在的其他值开始

我们可以迭代数据并基于此键将其划分为记录,然后从这些记录生成数据帧:

import pandas as pd

data = ['Sampling frequency: 8000 Hz',
 'Number of channels: 2 (16-bit integer)',
 'File name: /home/niraj/Documents/audiofiles/M1F1-int16.wav',
 'Sampling frequency: 8000',
 'Sampling frequency: 16000 Hz',
 'Number of channels: 1 (16-bit integer)',
 'File name: /home/niraj/Documents/jg00b1ss.wav',
 'Sampling frequency: 16000',
 'sample_rate: 16000',
 'Sampling frequency: 8000 Hz',
 'Number of channels: 2 (16-bit integer)',
 'File name: /home/niraj/Documents/M1F1-int16.wav',
 'Sampling frequency: 8000']

records = []
for line in data:
    key, value = line.split(": ")
    if key == "Sampling frequency":
        records.append({key:value})
    records[-1][key]=value

df = pd.DataFrame.from_records(records)

print(df)

pandas已经将NaN用于记录中丢失的每个字段

相关问题 更多 >