全部,
要替换某一列中的一个字符串,我已经完成了此操作,并且效果很好:
dataUS['sec_type'].str.strip().str.replace("LOCAL","CORP")
Run Code Online (Sandbox Code Playgroud)
我现在想用一个字符串替换多个字符串说替换["LOCAL", "FOREIGN", "HELLO"]为"CORP"
怎样才能让它发挥作用?下面的代码不起作用
dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
Run Code Online (Sandbox Code Playgroud) 全部,
我的数据框中有一列,如下所示:
allHoldingsFund['BrokerMixed']
Out[419]:
78 ML
81 CITI
92 ML
173 CITI
235 ML
262 ML
264 ML
25617 GS
25621 CITI
25644 CITI
25723 GS
25778 CITI
25786 CITI
25793 GS
25797 CITI
Name: BrokerMixed, Length: 2554, dtype: object
Run Code Online (Sandbox Code Playgroud)
虽然列是一个对象。我无法按该列进行分组,甚至无法提取该列的唯一值。例如当我这样做时:
allHoldingsFund['BrokerMixed'].unique()
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
uniques = table.unique(values)
File "pandas/_libs/hashtable_class_helper.pxi", line 1340, in pandas._libs.hashtable.PyObjectHashTable.unique
TypeError: unhashable type: 'numpy.ndarray'
Run Code Online (Sandbox Code Playgroud)
当我进行分组时,我也遇到错误。
欢迎任何帮助。谢谢
全部,
我在 pycharm 中一直有这个错误。
Backend WebAgg is interactive backend. Turning interactive mode on.
Process finished with exit code 132 (interrupted by signal 4: SIGILL)
Run Code Online (Sandbox Code Playgroud)
请问我如何解决这个问题?
谢谢
我有一个看起来像这样的数据框:
level_0 level_1 Repo Averages for 27 Jul 2018
0 Business Date Instrument Ccy
1 27/07/2018 GC_AUSTRIA_SUB_10YR EUR
2 27/07/2018 R_RAGB_1.15_10/18 EUR
3 27/07/2018 R_RAGB_4.35_03/19 EUR
4 27/07/2018 R_RAGB_1.95_06/19 EUR
Run Code Online (Sandbox Code Playgroud)
我试图摆脱顶行,只保留
Business Date Instrument Ccy
0 27/07/2018 GC_AUSTRIA_SUB_10YR EUR
1 27/07/2018 R_RAGB_1.15_10/18 EUR
2 27/07/2018 R_RAGB_4.35_03/19 EUR
3 27/07/2018 R_RAGB_1.95_06/19 EUR
Run Code Online (Sandbox Code Playgroud)
我尝试过df.columns.droplevel(0) 但没有成功任何帮助都非常受欢迎
我尝试从 Python 导入并读取 .mat 文件。我尝试过两种方法但没有成功。
方法一(Python):
import scipy.io as sio
mat = sio.loadmat('path/tmpPBworkspace.mat')
Run Code Online (Sandbox Code Playgroud)
我收到类似以下内容的消息:
{'None': MatlabOpaque([ (b'rateQualityOutTrim', b'MCOS', b'dataset', array([[3707764736],
[ 2],
[ 1],
[ 1],
[ 1],
[ 1]], dtype=uint32))],
dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')]),
'__function_workspace__': array([[ 0, 1, 73, ..., 0, 0, 0]], dtype=uint8),
'__globals__': [],
'__header__': b'MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Thu May 10 07:11:52 2018',
'__version__': '1.0'}
Run Code Online (Sandbox Code Playgroud)
我不确定那里出了什么问题?我希望看到一个数据框。另外要补充的是,在方法 1 中,我已将 .mat 保存为与 SciPy 兼容的版本。
在Matlab中:
{'None': MatlabOpaque([ (b'rateQualityOutTrim', b'MCOS', b'dataset', array([[3707764736], …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据框:
全部控股基金
BrokerBestRate notional_current DistanceBestRate
0 CITI 7.859426e+05 0.023194
1 WFPBS 3.609674e+06 -0.023041
2 WFPBS 1.488828e+06 -0.023041
3 JPM 3.484168e+05 -0.106632
4 CITI 6.088499e+05 0.023194
5 WFPBS 8.665558e+06 -0.023041
6 WFPBS 4.219563e+05 -0.023041
Run Code Online (Sandbox Code Playgroud)
我正在尝试一次进行求和积和分组(不创建额外的求和积列)
我试过这行代码
allHoldingsFund.groupby(['BrokerBestRate'])['notional_current']*['DistanceBestRate'].sum()
Run Code Online (Sandbox Code Playgroud)
我怎样才能做一个求和积,然后使用 group by 聚合它?
所需输出
BrokerBestRate product of (notional_current and DistanceBestRate)
CITI 654654645665466
JPM 453454534545367
WFPBS 345345345345435
Run Code Online (Sandbox Code Playgroud)
非常感谢
我正在尝试使用 if 语句并检查行值是否为 NaN 。事实证明比我想象的更难
这是一个例子:
df = pd.DataFrame({'key': ['A', 'B', 'C', 'A', 'B', 'C'],
'data1': range(6),
'data2': ['A1', 'B1', 'NaN', 'A1', 'B1','NaN']},
columns = ['key', 'data1', 'data2'])
def set_perf(row):
if ("C" in row['key']) & (row['data2']=="NaN"):
return row['data1']
else:
return 1
df['NewColumn'] = df.apply(set_perf, axis=1)
Run Code Online (Sandbox Code Playgroud)
输出是
key data1 data2 NewColumn
0 A 0 A1 1
1 B 1 B1 1
2 C 2 NaN 2
3 A 3 A1 1
4 B 4 B1 1
5 C 5 NaN 5 …Run Code Online (Sandbox Code Playgroud) 我希望选择 a 列和 b 列中每行的前两个元素。
这是一个例子
df = pd.DataFrame({'a': ['A123', 'A567','A100'], 'b': ['A156', 'A266666','A35555']})
>>> df
a b
0 A123 A156
1 A567 A266666
2 A100 A35555
Run Code Online (Sandbox Code Playgroud)
期望的输出
>>> df
a b
0 A1 A1
1 A5 A2
2 A1 A3
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用df.loc但没有成功。
我将 python 升级到 python 3.5 后正在使用 pycharm。
我重新运行了已有的标准代码,但plt.show()
示例有问题:
import matplotlib
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)
的建议使DavidG事情进展顺利。但这一次当我这么做的时候
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息
/apps/qtrinst/install/python/anaconda/envs/sx_anaconda/lib/python3.5/site-packages/matplotlib/__init__.py:1401: UserWarning: This call to matplotlib.use() has no effect
because the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
Run Code Online (Sandbox Code Playgroud)
之前没有收到此错误 - 不确定那里发生了什么。
使用以下方法计算两个日期之间的差异时:
df_test['Difference'] = (df_test['First_Date'] - df_test['Second Date'])
Run Code Online (Sandbox Code Playgroud)
我得到第三列“x 天”。
如何将“x Days”转换为int“x”。例如,“50 天”变成“50 天”?
之前的帖子中有人建议使用:
df_test['Difference'] = (df_test['First_Date'] - df_test['Second Date']).dt.days
Run Code Online (Sandbox Code Playgroud)
但使用它我得到一个类型的错误:
“‘系列’对象没有属性‘dt’”
请问我该如何解决这个问题?
我有一个奇怪的问题,我无法解决。我有一个看起来像这样的数据框子集
在数据框中,我使用以下代码添加“零”列:
subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
Run Code Online (Sandbox Code Playgroud)
我得到类似的结果
现在,当我执行与另一个数据框相似的操作时,我得到的零列包含NaN和零行,如下所示。这真是奇怪。
subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
Run Code Online (Sandbox Code Playgroud)
我不明白为什么有时我会得到零,而另一些我会得到NaN或NaN和零的混合。如果可以的话请帮忙
谢谢
pandas ×10
python ×8
python-3.x ×5
dataframe ×3
python-2.7 ×3
group-by ×2
drop ×1
if-statement ×1
matplotlib ×1
numpy ×1
pycharm ×1
scipy ×1
series ×1
string ×1
sum ×1