[英]How to remove dtype and Name from resulting pandas dataframe
對於某些操作,得到以下結果 c(a pandas dataframe)。 我的問題是如何從此結果中刪除 Name 和[3,1,1,3....]
並提取純值,即[3,1,1,3....]
。 有沒有辦法做到這一點?
res 包含索引,我需要使用它在 dfxn 中找到相應的行。
dfxn
Out[207]:
0 1 2 3 4 5 6 7
0 14.38 14.21 0.8951 5.386 3.312 2.462 4.956 1
1 10.83 12.96 0.8099 5.278 2.641 5.182 5.185 3
2 16.77 15.62 0.8638 5.927 3.438 4.920 5.795 2
3 10.74 12.73 0.8329 5.145 2.642 4.702 4.963 3
4 20.16 17.03 0.8735 6.513 3.773 1.910 6.185 2
res
Out[206]:
0
0 90
1 78
2 115
3 38
4 43
5 103
6 14
7 23
8 39
9 21
10 67
11 53
12 59
13 110
14 93
15 96
16 89
17 114
18 124
19 131
.
.
.
while i<len(res):
c[i]=dfxn.ix[res[i]]['7']
i+=1
c
Out[196]:
0
0 21 3
Name: 7, dtype: int64
1 90 1
Name: 7, dtype: int64
2 78 1
Name: 7, dtype: int64
3 115 3
Name: 7, dtype: int64
4 38 1
Name: 7, dtype: int64
5 43 1
Name: 7, dtype: int64
6 103 1
Name: 7, dtype: int64
7 14 3
看起來c
可能不是 DataFrame; 它可能是一個 Series 對象列表,這就是它像這樣打印的原因。 您可以通過查看type(c)
來確認或反駁。 無論如何,提取值的更好方法是將索引用作數組 - 您不需要使用循環。
import pandas as pd
df = pd.DataFrame({'a':range(10), 'b':[i+5 for i in range(10)]})
res = pd.DataFrame([2,5,6,8])
c = df['b'].ix[res.values.ravel()]
print(c)
產量
2 7
5 10
6 11
8 13
Name: b, dtype: int64
在你的情況下,這將是
c = dfxn['7'].ix[res.values.ravel()]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.