正在尝试从Pandas中的DataFrame
中删除列。从文本文件创建的DataFrame
。
import pandas as pd
df = pd.read_csv('sample.txt')
df.drop(['a'], 1, inplace=True)
但是,这会生成以下错误:
ValueError: labels ['a'] not contained in axis
以下是sample.txt
文件的副本:
a,b,c,d,e
1,2,3,4,5
2,3,4,5,6
3,4,5,6,7
4,5,6,7,8
提前谢谢。
发布于 2017-02-08 23:24:33
所以问题在于你的"sample.txt“文件实际上并没有包含你想要删除的数据。
你的产品线
df.drop(['id'], 1, inplace=True)
声明获取DataFrame (包括示例文件中的数据),在第一行(轴1)中找到值为'id‘的列,并执行就地替换(修改现有对象,而不是创建缺少该列的新对象,这将返回None,只修改现有对象。)。
问题是您的样本数据不包括标题等于'id‘的列。
在当前的示例文件中,您只能删除轴1中的值为'a‘、'b’、'c‘、'd’或'e‘的值。要么更正您的代码以删除其中一个值,要么获得具有正确标头的示例文件。
Pandas的文档不是很棒,但这里有一个很好的例子,说明了如何在Pandas中进行列删除:http://chrisalbon.com/python/pandas_dropping_column_and_rows.html
**以下是对@saar回复评论的回应
下面是我的示例代码: Sample.txt:
a,b,c,d,e
1,2,3,4,5
2,3,4,5,6
3,4,5,6,7
4,5,6,7,8
示例代码:
import pandas as pd
df = pd.read_csv('sample.txt')
print('Current DataFrame:')
print(df)
df.drop(['a'], 1, inplace=True)
print('\nModified DataFrame:')
print(df)
输出:
>>python panda_test.py
Current DataFrame:
a b c d e
0 1 2 3 4 5
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
Modified DataFrame:
b c d e
0 2 3 4 5
1 3 4 5 6
2 4 5 6 7
3 5 6 7 8
发布于 2017-08-06 15:37:33
bad= pd.read_csv('bad_modified.csv')
A=bad.sample(n=10)
B=bad.drop(A.index,axis=0)
这是一个部分丢弃数据帧的示例。以防你需要它。
https://stackoverflow.com/questions/42116091
复制相似问题