当列满足特定条件时,我想用getAllPhotos() {
Permissions.requestPermission(
android.Manifest.permission.READ_EXTERNAL_STORAGE,
"Needed for connectivity status"
)
.then(() => {
console.log("Permission granted!");
const dir = android.os.Environment.getExternalStoragePublicDirectory(
android.os.Environment.DIRECTORY_DCIM
);
const list = dir.listFiles();
console.log(list);
})
.catch(() => {
console.log("Permission is not granted (sadface)");
});
}
中的np.nan
填充0
。
pd.DataFrame
在import pandas as pd
import numpy as np
from datetime import datetime as dt
df = pd.DataFrame({'A': [np.datetime64('NaT'), dt.strptime('201803', '%Y%m'), dt.strptime('201804', '%Y%m'), np.datetime64('NaT'), dt.strptime('201806', '%Y%m')],
'B': [1, np.nan, 3, 4, np.nan],
'C': [8, 9, np.nan, 4, 1]})
A B C
0 NaT 1.0 8.0
1 2018-03-01 NaN 9.0
2 2018-04-01 3.0 NaN
3 NaT 4.0 4.0
4 2018-06-01 NaN 1.0
时,我想在B和C列中用df['A'] >= dt.strptime('201804', '%Y%m')
填充np.nan
。我想获得如下数据框。
0
我尝试了
A B C
0 NaT 1.0 8.0
1 2018-03-01 NaN 9.0
2 2018-04-01 3.0 0.0
3 NaT 4.0 4.0
4 2018-06-01 0.0 1.0
并收到错误m = df[df['A'] >= dt.strptime('201804', '%Y%m')][['B', 'C']].isnull()
df.mask(m, 0, inplace=True)
。我认为此错误是由于A列中存在Cannot do inplace boolean setting on mixed-types with a non np.nan value
而引起的。
是否还有另一种通过使用NaT
方法来获取所需数据帧的方法?
答案 0 :(得分:0)
我敢肯定还有一个更优雅的解决方案,但这可行:
df2 = df.copy()
df2.loc[df2.A>=datetime.strptime('201804', '%Y%m')] =
df2[df2.A>=datetime.strptime('201804', '%Y%m')].fillna(0)
第一行代码将复制原始数据帧。第二行获取符合条件的切片,您可以在其中相应地填写NaN项目。
我希望它会有用
欢呼!