我有以下代码将hdf5文件作为numpy数组读取:
hf = h5py.File('path/to/file', 'r')
n1 = hf.get('dataset_name')
n2 = np.array(n1)
Run Code Online (Sandbox Code Playgroud)
当我打印n2我得到这个:
Out[15]:
array([[<HDF5 object reference>, <HDF5 object reference>,
<HDF5 object reference>, <HDF5 object reference>...
Run Code Online (Sandbox Code Playgroud)
如何阅读HDF5 object reference查看存储在其中的数据?
所以我有一个带有几个可选参数的函数,如下所示:
def func1(arg1, arg2, optarg1=None, optarg2=None, optarg3=None):
Run Code Online (Sandbox Code Playgroud)
Optarg1和optarg2 通常一起使用,如果指定了这两个args,则不使用optarg3.相反,如果指定了optarg3,则不使用optarg1和optarg2.如果它是一个可选参数,则函数很容易"知道"使用哪个参数:
if optarg1 != None:
do something
else:
do something else
Run Code Online (Sandbox Code Playgroud)
我的问题是,当有多个可选参数并且并非总是指定所有参数时,如何"告诉"函数使用哪个可选参数?用**kwargs解析参数的方法是什么?
我有这个数据框:
index 0
idxaa1cx1 some_text
idxbb2cx2 some_text
idxcc3cx3 some_text
Run Code Online (Sandbox Code Playgroud)
我想将索引拆分为多索引,如下所示:
idx_1 idx_2 0
idxa a1cx1 some_text
idxb b2cx2 some_text
idxc c3cx3 some_text
Run Code Online (Sandbox Code Playgroud)
我试过这个:
df.index = pd.MultiIndex.from_tuples([tuple(idx.split(idx[:3][-5:])) for idx in df.index])
Run Code Online (Sandbox Code Playgroud)
返回:
idx_1 idx_2 0
a1cx1 some_text
b2cx2 some_text
c3cx3 some_text
Run Code Online (Sandbox Code Playgroud)
但 idx_1 列是空白的。我也试过:
df.index = pd.MultiIndex.from_tuples([tuple({idx[:3]:idx[-5:]}) for idx in df.index])
Run Code Online (Sandbox Code Playgroud)
只返回:
idx_1 0
idxa some_text
idxb some_text
idxc some_text
Run Code Online (Sandbox Code Playgroud)
并且不返回字典的“值”。我的问题是如何按任意长度拆分索引并获得多列?
我有一个df这样的大约1000行:
0 1
0 1.345 2.456
1 2.123 3.564
2 0.023 3.548
3 3.457 2.456
4 1.754 3.564
5 0.905 3.548
6 3.674 7.543
7 9.443 6.4433...
Run Code Online (Sandbox Code Playgroud)
它的组织方式是每7行构成一组"数据"(数据不能在这里排序).在7行的每个"组"中,我想获得第一行,所以我的新数据框看起来像:
0 1
0 1.345 2.456
7 9.443 6.4433
Run Code Online (Sandbox Code Playgroud)
我可以通过创建一个重复1-7并仅按该列过滤的新列来解决它...
0 1 groupby_col
0 1.345 2.456 1
1 2.123 3.564 2
2 0.023 3.548 3
3 3.457 2.456 4
4 1.754 3.564 5
5 0.905 3.548 6
6 3.674 7.543 7
7 9.443 6.4433 1...
Run Code Online (Sandbox Code Playgroud)
然后...
df[df['groupby_col'] == 1]
Run Code Online (Sandbox Code Playgroud)
我有没有办法在熊猫中做到这一点,而无需创建额外的列然后过滤?
因此,我希望以递归方式搜索具有数千个文件夹的目录以获取特定的文件扩展名,并获取添加的日期,然后按特定年份过滤.下面的代码有效但有没有办法可以转换为单行代码?
获取所有以xml结尾的文件并写入tmp.txt
find . -name "*xml" >> tmp.txt
Run Code Online (Sandbox Code Playgroud)获取tmp.txt中所有这些文件的权限信息和时间戳信息
foreach i ( ` cat tmp.txt ` )
ls -ltrh $i >> tmp2.txt
end
Run Code Online (Sandbox Code Playgroud)第8列包含日期作为年份,因此获取年份大于特定2014年的所有文件...
awk '$8 >=2014' tmp2.txt >> tmp3.txt
Run Code Online (Sandbox Code Playgroud)