在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Python/ pandas的賦值問(wèn)題。

pandas的賦值問(wèn)題。

我有一個(gè)Excel表格,然后通過(guò)pandas的read_excel()方法讀進(jìn)程序,命名為df

然后我想對(duì)這個(gè)表格每一行進(jìn)行處理,如果符合條件的話,就把這一行添加到一個(gè)新的名為df1的變量中,現(xiàn)在考慮一個(gè)簡(jiǎn)單的問(wèn)題,拋開(kāi)循環(huán)來(lái)講,如果只考慮每一次循環(huán)中的賦值或者是append操作,應(yīng)當(dāng)如何實(shí)現(xiàn)?

我的第一個(gè)想法是用賦值的

df1.loc[0] = df.loc[0]

這樣帶來(lái)的一個(gè)問(wèn)題是:print df1之后發(fā)現(xiàn)他第一行(第0行)的數(shù)據(jù)全是nan
而如果我在這之前print df.loc[0],結(jié)果并不是nan,也就是說(shuō)df.loc[0]是有的

如果我用append方法呢?

df1 = df1.append(df.loc[0])

則會(huì)報(bào)錯(cuò):UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
大意是說(shuō)編碼不符

所以我的問(wèn)題是:如何把一個(gè)從Excel文件中讀到的DataFrame的某一行“傳遞”給一個(gè)新的變量

回答
編輯回答
小眼睛

read_excel('xxx.xls',encoding = 'utf8')應(yīng)該能避免那種中文編碼錯(cuò)誤

2017年10月6日 16:19
編輯回答
冷溫柔

先定義一個(gè)DataFrame變量,然后append

import pandas as pd
df = pd.read_excel(data)
df1 = pd.Dataframe()
df1.append(df.loc[1])

我不知道你是怎么做到直接不先初始化一個(gè)DataFrame變量直接索引賦值的。。。

2017年11月22日 00:03
編輯回答
過(guò)客

聽(tīng)上去你貌似想做一個(gè)filter

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: df = pd.DataFrame(np.random.randint(0, 10, size=(5,4)), columns=list('ABCD'))

In [4]: df
Out[4]:
   A  B  C  D
0  5  5  6  5
1  5  5  0  6
2  1  2  5  4
3  8  1  7  9
4  5  8  4  2

In [5]: df[df.apply(lambda i: i['A'] < 5, axis=1)]
Out[5]:
   A  B  C  D
2  1  2  5  4

這里我用的條件是A列的值小于5。

而且那個(gè)編碼錯(cuò)誤貌似是你其他code的問(wèn)題...

2018年5月5日 17:25