df1 = df1[len(str(df1['content']))>8]
时间: 2023-11-06 12:07:16 浏览: 133
这是一个IT类问题,这段代码的作用是保留DataFrame中content列字符串长度大于8的行。但是这段代码存在错误,应该修改为:
```
df1 = df1[len(df1['content'].apply(str)) > 8]
```
或者
```
df1 = df1[df1['content'].astype(str).str.len() > 8]
```
这样才能正确筛选出字符串长度大于8的行。
相关问题
df = pd.read_csv('./part-00000-66a9d65e-cad2-4f62-af22-e9acbec50dbc.c000.csv', low_memory=False) sig_cell_volt = np.array(df.iloc[:1000, 10]) sum_volt = list(np.array(df.iloc[:1000, 6])) # print(sig_cell_volt) all_cell_vot = [] for i in sig_cell_volt: i = i[2:] cell_str = i.split('_') cell_list = [] for t in cell_str: t = float(t)/1000 cell_list.append(t) # print(len(cell_list)) all_cell_vot.append(cell_list) all_cell_vot = np.array(all_cell_vot) # x_data = torch.from_numpy(all_cell_vot) print(all_cell_vot) # sing_vol_df = pd.DataFrame(all_cell_vot) # writer = pd.ExcelWriter('vol.xlsx') # sing_vol_df.to_excel(writer,'sheet1',float_format='%.5f') df1 = pd.read_excel('vol.xlsx') col_name=df1.columns.tolist() col_name.insert(95, '总电压') df1['总电压'] = sum_volt df1.to_excel('piggy22.xlsx')
这段代码首先是在上一个代码段的基础上进行的。在处理完数据后,代码将 all_cell_vot 数组中的数据存储到了名为 sing_vol_df 的 DataFrame 中,并将这个 DataFrame 存储到了一个名为 vol.xlsx 的 Excel 文件中。
接下来,代码又读取了 vol.xlsx 文件,并将 DataFrame 中的列名存储到了名为 col_name 的列表中。然后,通过 insert 方法在 col_name 列表的索引 95 处插入了一个名为“总电压”的列名。接着,代码将 sum_volt 列表中的数据存储到了新添加的“总电压”列中。最后,通过 to_excel 方法将更新后的 DataFrame 存储到了一个名为 piggy22.xlsx 的 Excel 文件中。
请将以下代码补充内容:将解析后的数据存入同一路径相同文件名的CSV格式文件中 import os import struct import pandas as pd # 常量定义 LC1_FILE_PATH = 'D:\\sz000001.lc1' LC5_FILE_PATH = 'D:\\sz000001.lc5' BYTES_PER_RECORD = 32 SECONDS_PER_MINUTE = 60 MINUTES_PER_HOUR = 60 HOURS_PER_DAY = 24 SECONDS_PER_DAY = SECONDS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY SECONDS_PER_YEAR = SECONDS_PER_DAY * 365 START_YEAR = 2004 def read_lc_file(file_path): """读取lc文件,返回包含数据的DataFrame对象""" with open(file_path, 'rb') as f: buf = f.read() num = len(buf) // BYTES_PER_RECORD dl = [] for i in range(num): a = struct.unpack('hhfffffii', buf[i*BYTES_PER_RECORD:(i+1)*BYTES_PER_RECORD]) date_str = format_date(a[0]) time_str = format_time(a[1]) dl.append([date_str, time_str, a[2], a[3], a[4], a[5], a[6], a[7]]) df = pd.DataFrame(dl, columns=['date', 'time', 'open', 'high', 'low', 'close', 'amount', 'volume']) return df def format_date(date_int): """将日期整数格式化为字符串""" year = START_YEAR + date_int // 2048 month = (date_int % 2048) // 100 day = (date_int % 2048) % 100 return '{:04d}-{:02d}-{:02d}'.format(year, month, day) def format_time(time_int): """将时间整数格式化为字符串""" hour = time_int // 60 minute = time_int % 60 return '{:02d}:{:02d}:00'.format(hour, minute) # 读取lc1文件 df1 = read_lc_file(LC1_FILE_PATH) print(df1) # 读取lc5文件 df5 = read_lc_file(LC5_FILE_PATH) print(df5)
可以添加以下代码实现将解析后的数据存入同一路径相同文件名的CSV格式文件中:
```
# 将解析后的数据存入同一路径相同文件名的CSV格式文件中
def save_to_csv(df, file_path):
csv_file_path = os.path.splitext(file_path)[0] + '.csv'
df.to_csv(csv_file_path, index=False)
save_to_csv(df1, LC1_FILE_PATH)
save_to_csv(df5, LC5_FILE_PATH)
```
其中,`os.path.splitext(file_path)[0]`可以获取`file_path`的文件名(不包含扩展名),然后在文件名后面添加`.csv`扩展名,得到最终的CSV文件路径。然后使用`to_csv`函数将DataFrame对象保存为CSV文件。最后在读取完lc1和lc5文件后,分别调用`save_to_csv`函数将解析后的数据保存为CSV文件。
阅读全文