df = pd.read_csv("5.txt", sep="\t", header=None, error_bad_lines=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: read_csv() got an unexpected keyword argument 'error_bad_lines'
时间: 2023-08-02 14:08:20 浏览: 182
这个错误提示说明`read_csv()`函数不支持`error_bad_lines`这个参数。这个参数通常用于忽略读取文件时发生的错误行,但是如果使用pandas库来读取文件,可以使用`error_bad_lines`参数的替代方案,即`on_bad_lines`参数。具体来说,可以将`error_bad_lines=False`改为`on_bad_lines='skip'`,如下所示:
```python
import pandas as pd
df = pd.read_csv("5.txt", sep="\t", header=None, on_bad_lines='skip')
print(df.head(234)) # 查看第234行之前的数据
```
这样修改后,`read_csv()`函数就会在遇到格式错误的行时自动跳过,并读取剩下的数据。
相关问题
修改程序df1 = pd.read_csv('image_3_2.txt', sep='\t', header=None, error_bad_lines=False) df2 = pd.read_csv('image_6.txt', sep='\t', header=None, error_bad_lines=False) tree = KDTree(df2.iloc[:, :2].values) k = 4 distances, indices = tree.query(df1.iloc[:, :2].values, k=k) values = df2.iloc[indices[:, 1:], 2].values mean_values = values.mean(axis=1) df1.iloc[:, 2] = mean_values df1.to_csv('4.txt', sep='\t', header=None, index=None)
你的修改看起来是正确的,但是我建议你在读取文件时使用参数 na_values='?' 来将 '?' 转换为 NaN 值,以便更好地处理缺失值。下面是修改后的程序:
```python
import pandas as pd
from scipy.spatial import KDTree
df1 = pd.read_csv('image_3_2.txt', sep='\t', header=None, error_bad_lines=False, na_values='?')
df2 = pd.read_csv('image_6.txt', sep='\t', header=None, error_bad_lines=False, na_values='?')
tree = KDTree(df2.iloc[:, :2].values)
k = 4
distances, indices = tree.query(df1.iloc[:, :2].values, k=k)
values = df2.iloc[indices[:, 1:], 2].values
mean_values = values.mean(axis=1)
df1.iloc[:, 2] = mean_values
df1.to_csv('4.txt', sep='\t', header=None, index=None)
```
这样做可以帮助你更好地处理缺失值,避免程序出现异常。
程序运行提示ValueError: too many values to unpack (expected 2),修改程序df1 = pd.read_csv('image_3_2.txt', sep='\t', header=None, error_bad_lines=False) df2 = pd.read_csv('image_6.txt', sep='\t', header=None, error_bad_lines=False) tree = KDTree(df2.iloc[:, :2].values) k = 4 distances, indices = tree.query(df1.iloc[:, :2].values, k=k) values = df2.iloc[indices[:, 1:], 2].values mean_values = values.mean(axis=1) df1.iloc[:, 2] = mean_values df1.to_csv('4.txt', sep='\t', header=None, index=None)
这个错误通常是由于读取的文件内容与程序期望的不符合导致的。在这个程序中,错误可能是由于读取的两个文件中的行数或者列数不同导致的。通过在读取文件时添加参数 error_bad_lines=False,程序将跳过一些格式错误的行,但这并不是完美的解决方案,因为跳过的行可能会导致程序的其他部分出现问题。你可以尝试检查一下文件的格式并且确保文件中每一行的列数都是一致的,或者尝试使用其他的文件读取方式或库来读取你的文件。
阅读全文