从包含0的pandas数据帧中删除所有行作为字符串和整数

时间:2017-05-23 14:31:51

标签: pandas dataframe rows removeall

我使用df[(df != '0') & (df != 0)] 从Yahoo Finance加载数据导致包含0的行有时作为字符串,其他时候作为整数。尝试按布尔掩码删除/删除这些行:

TypeError: Could not compare ['0'] with block values

会导致错误:

TypeError: Could not compare [0] with block values

(如果数据帧没有任何字符串值为'0'的行)和

<div id = "geochart" >< /div>

<script type = "text/javascript" >
  google.charts.setOnLoadCallback(drawAcChart);
function drawAcChart() {
var data = google.visualization.arrayToDataTable([
    ['Country', 'Popularity'],
    ['South America', 600],
    ['Canada', 500],
    ['France', 600],
    ['Russia', 700],
    ['Australia', 600]
  ]);
 var options = {
    displayMode: 'text'
  };
var chart = new google.visualization.GeoChart(document.getElementById('geochart'));
chart.draw(data, options);
}
</script>

(如果帧没有任何整数值0)。

1 个答案:

答案 0 :(得分:0)

使用以下数据框:

df = pd.DataFrame({'int': [0,0,2,3,0,0,1,2,3],
    'string': ['0','1','2','3','0','0','1','2','0']})

   int string
0    0      0
1    0      1
2    2      2
3    3      3
4    0      0
5    0      0
6    1      1
7    2      2
8    3      0

以下代码应该有效:

df = df[df.string != '0']
df = df[df.int != 0]

这给出了以下输出:

   int string
2    2      2
3    3      3
6    1      1
7    2      2