Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用loc对部分列求和,而不是全部列求和_Python_Pandas - Fatal编程技术网

Python 使用loc对部分列求和,而不是全部列求和

Python 使用loc对部分列求和,而不是全部列求和,python,pandas,Python,Pandas,当我使用此功能时: results_all.ix['Total', 'n_Close'] = results_all['n_Close'].sum() 结果如下(结果不是求和而是相加): 当我使用此选项时: results_all.loc['Total']= results_all.sum() 结果是: date n_Close g_Close potential 0 2017-05-02.csv 234 10.5 20.5

当我使用此功能时:

results_all.ix['Total', 'n_Close'] = results_all['n_Close'].sum()
结果如下(结果不是求和而是相加):

当我使用此选项时:

results_all.loc['Total']= results_all.sum()
结果是:

    date            n_Close    g_Close  potential
0   2017-05-02.csv    234       10.5    20.5
1   2017-05-03.csv     -8         0     1
Total   2017-05-02.csv2017-05-03.csv    234.0-8.0   10.50.0 20.51.0
所需结果为特定列的总和:

    date            n_Close    g_Close  potential XXX
0   2017-05-02.csv    234       10.5    20.5      10
1   2017-05-03.csv     -8         0     1          7
Total nothing here     226     10.50    21.5     nothing here

我认为数字列是
string
s有问题

解决方案是通过将所有值转换为数字,将原始值替换为数字列,并获得
总和

print (df)
             date n_Close g_Close potential
0  2017-05-02.csv     234    10.5      20.5
1  2017-05-03.csv      -8       0         1
1  2017-05-03.csv     aaa       0         1

df1 = df.apply(pd.to_numeric, errors='coerce')
df.loc[:,  ~df1.isnull().all()] = df1
df.loc['Total'] = df1.sum(min_count=1)
print (df)
                 date n_Close g_Close potential
0      2017-05-02.csv     234    10.5      20.5
1      2017-05-03.csv      -8       0         1
1      2017-05-03.csv     NaN       0         1 <-aaa was replaced by NaN
Total             NaN     226    10.5      22.5
打印(df)
日期n_关闭g_关闭潜力
0 2017-05-02.csv 234 10.5 20.5
2017-05-03.csv-8 0 1
1 2017-05-03.csv aaa 0 1
df1=df.apply(pd.to_numeric,errors='concurve')
df.loc[:,~df1.isnull().all()]=df1
df.loc['Total']=df1.sum(最小计数=1)
打印(df)
日期n_关闭g_关闭潜力
0 2017-05-02.csv 234 10.5 20.5
2017-05-03.csv-8 0 1
1 2017-05-03.0 1
print (df)
             date n_Close g_Close potential
0  2017-05-02.csv     234    10.5      20.5
1  2017-05-03.csv      -8       0         1
1  2017-05-03.csv     aaa       0         1

df1 = df.apply(pd.to_numeric, errors='coerce')
df.loc[:,  ~df1.isnull().all()] = df1
df.loc['Total'] = df1.sum(min_count=1)
print (df)
                 date n_Close g_Close potential
0      2017-05-02.csv     234    10.5      20.5
1      2017-05-03.csv      -8       0         1
1      2017-05-03.csv     NaN       0         1 <-aaa was replaced by NaN
Total             NaN     226    10.5      22.5
df1 = df.apply(pd.to_numeric, errors='coerce')
df.loc['Total'] = df1.sum(min_count=1)
print (df)
                 date n_Close g_Close potential
0      2017-05-02.csv     234    10.5      20.5
1      2017-05-03.csv      -8       0         1
1      2017-05-03.csv     aaa       0         1 <- aaa for original values
Total             NaN     226    10.5      22.5