我有一个dataframe,其中每一列代表一个用户。我正在尝试删除一个只有NaN和0.000000的any列,这样Username1或第一列就不会包含在数据帧中,而其他列会包含在数据帧中。 这是数据帧: username 1 2 3 4 5
date
2019-01-16 NaN 9.16667 NaN NaN 1.000000
2019-01-17 NaN NaN NaN 1.000000 1.000000
2019-0
我有一个数据帧列表,我想记录这些数据帧中每个元素的日志,并找出第一个差异。在时间序列计量经济学中,这个过程给出了一个近似的增长率。以下代码
for i in [0, 1, 2, 5]:
df1_list[i] = 100 * np.log(df_list[i]).diff()
给出一个错误
__main__:7: RuntimeWarning: divide by zero encountered in log
__main__:7: RuntimeWarning: invalid value encountered in log
当我查看结果时,产生的数据帧的许多元素都是nan。我
我已经在Pandas中通过df.describe()获得了我的数据帧的统计数据。
statistics = df.describe()
我想根据计数过滤统计数据帧:
main Meas1 Meas2 Meas3 Meas4 Meas5
sublvl Value Value Value Value Value
count 7.000000 1.0 1.0 582.00 97.000000
mean 30 37.0 26.0 33.03 16.635
我有一个很大的时间表数据帧,我需要计算运行的实验数量。挑战在于,for的用法在行中重复(这是可以的),但在某些列中重复,但不是所有列中。我想删除第二个条目(如果重复的话),但我不能删除整个第二列,因为它也将包含一些新值。如何以并排的方式比较两个列的单个条目,并在存在重复项时删除第二个条目?此操作的持续时间最多为两天,因此连续三天是从第三天开始具有相同名称的新事件。实验名称的实际文本很复杂,数据框有120列宽,因此不可能将其作为列表或字典键入。我希望使用python或numpy函数,但也可以使用循环。 以下是起始数据帧和所需输出的示例图片。starting data frame example
我使用Python语言中的PyMongo库在MongoDB中插入文档。pandas数据帧有37个字段和60k条记录(数据集链接:)。数据帧中的所有字段都已转换为str类型。我收到以下错误:
OverflowError: MongoDB can only handle up to 8-byte ints
当我使用for循环插入2500个文档的块时,错误仍然存在。
代码片段:
import pandas as pd
import pymongo
client = pymongo.MongoClient()
db = client['patenting_in_psi']
colle
我有一个数据帧,其中每个记录都可能有多个值对(例如,email1与value1配对)。每条记录可以有0到6个这样的对。数据帧看起来有点像这样: id email1 value1 email2 value2 email3 value3 ...
1 x@test.com 123 NaN NaN NaN NaN
2 NaN NaN y@test.com 456 NaN NaN
3 z@test.com 789 Na
添加空行到dataframeConstraint : Performance
# dataframe is onedf
temp_false_list = []
for xray in range(onedf.shape[1]):
temp_false_list.append(np.nan)
onedf.loc[len(onedf)] = temp_false_list # this line takes 90% of time
工作,并将一个空行附加到数据文件中,但是当使用%lprun -f检查时,loc分配操作占用了 90 %的时间。
I必须执行更多3k时间相同的操作(在
因此,我的数据集包含一些按业务日期划分的信息,如下所示:
Business Date Value
a 1/1/2017 127
a 2/1/2017 89
b 2/1/2017 122
a 1/1/2018 555
a 2/1/2018 455
我需要如下格式的数据:我如何转换它。我不希望在我的输出数据集中有多个级别
Business 1/1/2017 2/1/2017 1/1/2018 2/1/2018
a 127 89 55
我有一个包含A和B列的dataframe A
A | B
---------------
1 | 2
4 | 3
我想应用一个函数getData,它获取A并返回元组列表(列/值对):
例如,对于第一行:
[('C', 5), ('D', 1), ('Z', 1)]
至于第二行:
[('E', 5), ('Z', 3)]
我的目标是生成如下所示的数据帧(替换了缺失的值):
A | B | C | D |
我有以下数据帧: field value
0 longitude 100
1 altitude 200
2 location China
3 date 20180303
...... 我想将此数据帧转换为以下格式: field string_value int_value datetime_value boolean_value float_value field_type
0 longitude NA NA NA NA
我在一个有200列的pandas数据帧上执行了以下操作,该操作使用了大约1s: for col in mycols:
values = [str(_item) if col_raw_type == 'object' else '{:f}'.format(_item)
for _item in df[col_name].dropna().tolist()
if (_item is not None) and str(_item)] 有没有更好的方法来做到这一点?似乎tolist操作有点慢? 我在这里尝试做的是转换类似如下的内容:
我使用以下命令将dataframe转换为json类型: df_json = df.to_json(orient = "records") 但是通过这种方式,我的NaN列被转换为None,而我实际上希望它们为NaN。因此,当我继续向postgres发送数据帧时,将读取NaN列并将其提取为NULL。 当我转换我的数据帧时的结果: no type
1 All
2 None
3 None 然而,期望的结果是: no type
1 All
2 NaN
3 NaN 到目前为止,我已经尝试过: df_json = df.to_json(orien
假设我有一个数据帧
df = pd.DataFrame({'A':[0,1],'B':[2,3]})
A B
0 0 2
1 1 3
然后,我有一个由其他函数使用来自df第一行的输入生成的序列,但它与现有的df没有重叠
s = pd.Series ({'C':4,'D':6})
C 4
D 6
现在,我想将s添加到df.loc[0]中,键变成新列,值只添加到第一行。df的最终结果应该如下所示:
A B C D
0 0 2 4 6
1 1 3
我有一个数据帧,里面装满了浮点数和NaNs。我需要将所有的小数/浮点数转换为整数。我检查了所有的类型都是整型的,但是到numpy.float64的转换不起作用。这就是数据帧的样子。
目前,我正在使用此代码尝试将所有非non更改为整数,但它不会将数据帧中的浮点数替换为整数。
for i, row in df_cn.iterrows():
for col in df_cn.columns:
cell = row[col]
if isinstance(cell, np.float64) and np.isnan(cell) == False: