Skip to content

Commit

Permalink
fix python bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
ritchie46 committed Sep 13, 2020
1 parent 0ada2be commit 9e0fba8
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 11 deletions.
4 changes: 2 additions & 2 deletions py-polars/polars/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,5 +146,5 @@ def drop(self, name: str) -> DataFrame:
def drop_in_place(self, name: str) -> Series:
return wrap_s(self._df.drop_in_place(name))

def select_idx(self, idx: int) -> Series:
return wrap_s(self._df.select_idx(idx))
def select_at_idx(self, idx: int) -> Series:
return wrap_s(self._df.select_at_idx(idx))
17 changes: 11 additions & 6 deletions py-polars/src/dataframe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ impl PyDataFrame {
Ok(PyDataFrame::new(df))
}

pub fn to_csv(&self, path: &str, has_headers: bool, delimiter: u8) -> PyResult<()> {
pub fn to_csv(&mut self, path: &str, has_headers: bool, delimiter: u8) -> PyResult<()> {
// TODO: use python file objects:
let mut buf = std::fs::File::create(path)?;
CsvWriter::new(&mut buf)
.has_headers(has_headers)
.with_delimiter(delimiter)
.finish(&self.df)
.finish(&mut self.df)
.map_err(PyPolarsEr::from)?;
Ok(())
}
Expand Down Expand Up @@ -123,16 +123,21 @@ impl PyDataFrame {
Ok(PyDataFrame::new(df))
}

pub fn select_idx(&self, idx: usize) -> Option<PySeries> {
self.df.select_idx(idx).map(|s| PySeries::new(s.clone()))
pub fn select_at_idx(&self, idx: usize) -> Option<PySeries> {
self.df.select_at_idx(idx).map(|s| PySeries::new(s.clone()))
}

pub fn find_idx_by_name(&self, name: &str) -> Option<usize> {
self.df.find_idx_by_name(name)
}

pub fn column(&self, name: &str) -> Option<PySeries> {
self.df.column(name).map(|s| PySeries::new(s.clone()))
pub fn column(&self, name: &str) -> PyResult<PySeries> {
let series = self
.df
.column(name)
.map(|s| PySeries::new(s.clone()))
.map_err(PyPolarsEr::from)?;
Ok(series)
}

pub fn select(&self, selection: Vec<String>) -> PyResult<Self> {
Expand Down
5 changes: 3 additions & 2 deletions py-polars/src/series.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,10 @@ impl PySeries {
}

pub fn rename(&mut self, name: &str) {
self.series.rename(name)
self.series.rename(name);
}

pub fn dtype(&self) -> &str {
pub fn dtype(&self) -> String {
self.series.dtype().to_str()
}

Expand Down Expand Up @@ -254,6 +254,7 @@ impl PySeries {
Series::DurationNanosecond(ca) => PyList::new(python, ca),
Series::Bool(ca) => PyList::new(python, ca),
Series::Utf8(ca) => PyList::new(python, ca),
_ => todo!(),
};
pylist.to_object(python)
}
Expand Down
2 changes: 1 addition & 1 deletion py-polars/tests/test_df.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def test_selection():

assert df[[0, 1], "b"].shape == (2, 1)
assert df[[2], ["a", "b"]].shape == (1, 2)
assert df.select_idx(0).name == "a"
assert df.select_at_idx(0).name == "a"
assert (df.a == df["a"]).sum() == 3
assert (df.c == df["a"]).sum() == 0

Expand Down

0 comments on commit 9e0fba8

Please sign in to comment.