为了账号安全,请及时绑定邮箱和手机立即绑定

Python:如何计算数据帧中特定列中的特定值

Python:如何计算数据帧中特定列中的特定值

慕仙森 2021-06-10 14:00:56
我有一个特定的 csv 例如:col1 col2 col3 col4a    1    2     3b    1    2     1 c    1    1     3d    3    1     2 我想计算特定值的数量,例如。1 在 col2、col3 和 col4我使用以下代码使用熊猫import pandas as pdfname = input('Enter the filename:')df = pd.read_csv (fname, header='infer')one = df.iloc[:,1:4].value_counts(normalize=False).loc[1]它显示错误,但是当我对特定定义的列执行相同操作时,代码运行正常import pandas as pdfname = input('Enter the filename:')df = pd.read_csv (fname, header='infer')one = df[col1].value_counts(normalize=False).loc[1]我想要以下输出col2 3col3 2col4 1任何帮助或提示将不胜感激!先感谢您。:)
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

使用eq所需的值,即1,然后sum作为:


df1[['col2', 'col3', 'col4']].eq(1).sum()


col2    3

col3    2

col4    1

dtype: int64


查看完整回答
反对 回复 2021-06-22
?
浮云间

TA贡献1829条经验 获得超4个赞

我在以下 DataFrame(名为“trade_track”)的“Buys”和“Sells”列中寻找一种方法来检查实际上有多少值高于/低于零时遇到了这个问题:


Ticker  Pre-trade  Buys  Sells  Net Exposure Ch.  Post-trade

CX        10126.0   0.0 -964.0         -0.095200      9162.0

OI         3311.0   0.0  -24.0         -0.007249      3287.0

THO         748.0   0.0  -33.0         -0.044118       715.0

WRK        1002.0   0.0  -43.0         -0.042914       959.0

TAP         646.0   0.0   -4.0         -0.006192       642.0

TRN        1987.0   0.0  -93.0         -0.046804      1894.0

SJM         312.0   6.0    0.0          0.019231       318.0

WW         1100.0   0.0  -22.0         -0.020000      1078.0

FAST       -655.0  13.0    0.0         -0.019847      -642.0

CSX        -301.0   6.0    0.0         -0.019934      -295.0

ODFL       -123.0   0.0    0.0         -0.000000      -123.0

HELE       -130.0   0.0    0.0         -0.000000      -130.0

SBUX       -203.0   0.0    0.0         -0.000000      -203.0

WM         -166.0   0.0    0.0         -0.000000      -166.0

HD          -90.0   2.0    0.0         -0.022222       -88.0

VMC        -141.0   0.0    0.0         -0.000000      -141.0

CTAS        -76.0   2.0    0.0         -0.026316       -74.0

ORLY        -53.0   0.0    0.0         -0.000000       -53.0

这是一个有效的简单代码:


(i) 在“Buys”列中找到所有大于零的数字:


((trade_track['Buys'])>0).sum()

(ii) 要在“购买”列中找到所有零:


((trade_track['Buys'])==0).sum()


查看完整回答
反对 回复 2021-06-22
  • 2 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信