我如何设置数据框的索引有什么区别?
HttpClient client = new HttpClient();
String url = "http://www.example.com/README.txt";
// Create a method instance.
GetMethod method = new GetMethod(url);
// Provide custom retry handler is necessary
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
byte[] responseBody = method.getResponseBody();
String fileContents = new String(responseBody);
我收到以下错误:
data = [['A', 5], ['B', 6], ['C', 7]]
df = pd.DataFrame(data=data, columns=['key', 'amount'], index= ['key'])
如果我按照以下方式正常工作:
Shape of passed values is (2, 3), indices imply (2, 1)
我设置索引的方式之间有什么区别?
答案 0 :(得分:2)
一方面,pd.Dataframe
期望index是一个数组,并将用作行的索引,例如:
In [17]: data
Out[17]: [['A', 5], ['B', 6], ['C', 7]]
In [18]: df = pd.DataFrame(data=data, index=['a', 'b', 'c'])
In [19]: df
Out[19]:
0 1
a A 5
b B 6
c C 7
这不是你想要达到的目标。
另一方面,DataFrame.set_index
将一个(或多个)列设置为变为索引,这是您在此情况下要执行的操作。
答案 1 :(得分:1)
第一种方式:
data = [['A', 5], ['B', 6], ['C', 7]]
df = pd.DataFrame(data=data, columns=['key', 'amount'], index= ['key'])
您将索引指定为'key'
的单个值。换句话说,将有一行标签为'key'
。
第二种方式:
df2 = pd.DataFrame(data=data, columns=['key', 'amount'])
df2.set_index(['key'], inplace=True)
您已指定名为'key'
的列,其中可能包含许多行。您随后指示df2
使其索引等于名为'key'
的整个列。