从textfi中排序数据时出现问题

2024-06-12 08:08:46 发布

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

我有一个csv文件导入到一个数据帧,有麻烦排序的数据

df如下所示:

    Data
0                          <WindSpeed>0.69</WindSpeed>
1                         <PowerOutput>0</PowerOutput>
2              <ThrustCoEfficient>0</ThrustCoEffici...
3                        <RotorSpeed>8.17</RotorSpeed>
4                     <ReactivePower>0</ReactivePower>
5                                         </DataPoint>
6                                          <DataPoint>
7                          <WindSpeed>0.87</WindSpeed>
8                         <PowerOutput>0</PowerOutput

我希望它看起来像这样:

0   Windspeed   Poweroutput
1   0.69        0.0

这里´这是我迄今为止写的代码:


import pandas as pd
from pandas.compat import StringIO
import re
import numpy as np


df= pd.read_csv('powercurve.csv', encoding='utf-8',skiprows=42)
df.columns=['Data']


no_of_rows=df.Data.str.count("WindSpeed").sum()/2
rows=no_of_rows.astype(np.uint32)
TRBX=pd.DataFrame(index=range(0,abs(rows)),columns=['WSpd[m/s]','Power[kW]'],dtype='float')
i=0
for i in range(len(df)):

  if 'WindSpeed' in df['Data']:
       TRBX['WSpd[m/s]', i]= re.findall ("'(\d+)'",'Data')


  elif 'Rotorspeed' in df['Data']:
       TRBX['WSpd[m/s]', i]= re.findall ("'(\d+)'",'Data') 

这是合适的方法吗?如果是,到目前为止没有值写入TRBX数据帧。我的错在哪里


Tags: csv数据inimportredfdatarows
1条回答
网友
1楼 · 发布于 2024-06-12 08:08:46

如果您的df确实与您的格式相同,下面的代码应该会对您有所帮助:

import re

split_func = lambda x: re.split('<|>', str(x))

split_series = df.Data.apply(split_func)
data = a.apply(lambda x: x[2]).rename('data')
features = a.apply(lambda x: x[1]).rename('features')
df = pd.DataFrame(data).set_index(features).T

您可能希望删除一些没有数据的列,或者在之后输入一些N/A值。您还可能希望将变量和序列重命名为对您更有意义的不同名称

相关问题 更多 >