小编Flo*_*oor的帖子

Python/Pandas:基于单元格值的计算

我有这样的数据框:

   A B C D E
0  2 3 4 8 7
1  4 7 5 9 4 
2  3 4 5 7 2
3  8 9 1 3 7
Run Code Online (Sandbox Code Playgroud)

我需要做这样的事情:

if 'value in column A' == 2:
  'value for this row in new column' = 'value from column B' + 'value from column C'
elif 'value in column A' == 4:
   'value for this row in new column' = 'value from column B' + 'value from column D'
elif …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

3
推荐指数
1
解决办法
942
查看次数

如果数据框具有相同的索引,如何重塑数据框?

如果我有一个数据帧

df= pd.DataFrame(['a','b','c','d'],index=[0,0,1,1])
Run Code Online (Sandbox Code Playgroud)
   0
0  a
0  b
1  c
1  d

如何根据下面的索引重塑数据帧,即

df= pd.DataFrame([['a','b'],['c','d']],index=[0,1])
Run Code Online (Sandbox Code Playgroud)
  0  1
0  a  b
1  c  d

python pandas

3
推荐指数
1
解决办法
184
查看次数

如何用列名填充数据框的真实值?

我有一个带有 True 和 False 值的 DataFrame。

       A B C D
0 假 真 真 假
1 假 假 真 假
2 真真假假

我想用列名填充真值,用 0 填充假值。我该怎么做?

即得到结果为

   A B C D
0 0 公元前 0
1 0 0 C 0
2 AB 0 0

python mask pandas

3
推荐指数
1
解决办法
750
查看次数

在 csv.reader 之后从列(Python Pandas)中获取最早的日期

我从具有多列的 CSV 文件加载一些数据。在我的 csv.reader 中,我有一个 IF 函数。我试图从特定列(开始日期)中获取最早的日期。

我首先加载数据:

for row in csv.reader(open('myFile.csv')):
  if row[4] == '56886':
    key = row[4] #key = (row[4], row[33][:4], row[4])
    startDate = row[19]
Run Code Online (Sandbox Code Playgroud)

当我打印列 (startDate) 时,我得到了这个:

在此处输入图片说明

01)我尝试使用以下内容:

content = min(content)
print(content)
Run Code Online (Sandbox Code Playgroud)

我在终端得到了这个:

在此处输入图片说明

02)然后我尝试更改我的代码:

for row in csv.reader(open('myFile.csv',
        parse_dates=['Start Date'], 
        usecols=['Start Date']))
  if row[4] == '56886':
    key = row[4] #key = (row[4], row[33][:4], row[4])
    startDate = row[19]
Run Code Online (Sandbox Code Playgroud)

我收到了无效的语法错误。

03)我尝试将线路更改为:

pandas.read_csv('myFile.csv', parse_dates=['Start Date'], usecols=['Start Date'])
Run Code Online (Sandbox Code Playgroud)

我得到了同样的错误。

最好的解决方法是什么?到目前为止,我还没有找到解决方案。

python csv date pandas

3
推荐指数
1
解决办法
6633
查看次数

如何根据文档相似度对文本数据进行分组?

考虑如下数据框

df = pd.DataFrame({'Questions': ['What are you doing?','What are you doing tonight?','What are you doing now?','What is your name?','What is your nick name?','What is your full name?','Shall we meet?',
                             'How are you doing?' ]})
Run Code Online (Sandbox Code Playgroud)
                   问题
0 你在做什么?
1 今晚你做什么?
2 你现在在做什么?
3 你叫什么名字?
4 你的昵称是什么?
5 你的全名是什么?
6 我们见面好吗?
7 你好吗?

如何将具有类似问题的数据框分组?即如何获得如下所示的组

for _, i in df.groupby('similarity')['Questions']:
    print(i,'\n')
Run Code Online (Sandbox Code Playgroud)
6 我们见面好吗?
名称:问题,数据类型:对象

3 你叫什么名字?
4 你的昵称是什么?
5 你的全名是什么?
名称:问题,数据类型:对象

0 你在做什么?
1 今晚你做什么?
2 你现在在做什么?
7 你好吗?
名称:问题,数据类型:对象

这里提出了类似的问题,但不太清楚,所以没有回答这个问题

python group-by similarity nltk pandas

3
推荐指数
1
解决办法
3287
查看次数

有没有办法在jupyter中一次删除所有单元格?

我每天都会在回答堆栈溢出中的大熊猫问题之前尝试我的解决方案.通常在两到三天后,我使用的jupyter笔记本将有n个单元格.除了通过删除当前的笔记本创建新笔记本之外,有没有办法一次删除所有单元格?

D D 一次删除一个单元格.

python jupyter

3
推荐指数
1
解决办法
1639
查看次数

从DataFrame中的标签获取列号

例如,如何从DataFrame中的标签获取列号。

import pandas as pd
from pandas import DataFrame

df = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'],
                'data1': range(6)},
                index=['a1','a2','a3','a4','a5','a6'])
In[31]:df
Out[31]: 
Run Code Online (Sandbox Code Playgroud)
      数据1键
a1 0 b
2一1
a3 2 a
a4 3
a5 4 a
6小时

如果我跑

df.iloc[2,1]
Run Code Online (Sandbox Code Playgroud)

它会返回“ a”。问题是,我只知道列标签是“键”,如何获取列号?然后我可以使用df.iloc。

您会发现,.ix在熊猫中已被弃用,否则我将只使用df.ix [2,'key']。

我只知道如何解决类似问题:从列号获取列标签。例如,

df.loc['a3',df.iloc[:,[1]].columns]
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
3005
查看次数

如何使用key作为isnan对numpy数组进行排序?

我有一个像numpy数组

np.array([[1.0, np.nan, 5.0, 1, True, True, np.nan, True],
       [np.nan, 4.0, 7.0, 2, True, np.nan, False, True],
       [2.0, 5.0, np.nan, 3, False, False, True, np.nan]], dtype=object)
Run Code Online (Sandbox Code Playgroud)

现在我想用key作为isnan对值进行排序?我怎样才能做到这一点?所以我最终会在阵列中

np.array([[1.0, 5.0, 1, True, True, True, np.nan, np.nan],
   [4.0, 7.0, 2, True, False, True, np.nan, np.nan],
   [2.0, 5.0, 3, False, False, True, np.nan, np.nan]], dtype=object)
Run Code Online (Sandbox Code Playgroud)

np.sort()没用.在pandas中可以实现相同的sorted功能,通过使用带有键的函数的已排序列作为pd.isnull(),但寻找速度的numpy答案.

在熊猫里

data = pd.DataFrame({'Key': [1, 2, 3], 'Var': [True, True, False], 'ID_1':[1, np.NaN, 2],
                'Var_1': [True, np.NaN, False], 'ID_2': [np.NaN, 4, 5], 'Var_2': [np.NaN, …
Run Code Online (Sandbox Code Playgroud)

python numpy

2
推荐指数
1
解决办法
234
查看次数

如何获取自定义间隔中的最后一个日期? - 熊猫

我的例子可能很大,我的代码在这里:

import pandas as pd
import numpy as np
import io
t = """
name     date
a     2005-08-31
a     2005-09-20
a     2005-11-12
a     2005-12-31
a     2006-03-31
a     2006-06-25
a     2006-07-23
a     2006-09-28
a     2006-12-21
a     2006-12-27
a     2007-07-23
a     2007-09-21
a     2007-03-15
a     2008-04-12
a     2008-06-21
a     2008-06-11
b     2005-08-31
b     2005-09-23
b     2005-11-12
b     2005-12-31
b     2006-03-31
b     2006-06-25
b     2006-07-23
b     2006-09-28
b     2006-12-21
b     2006-12-27
b     2007-07-23
b     2007-09-21
b     2007-03-15
b     2008-04-12
b     2008-06-21
b     2008-06-11 …
Run Code Online (Sandbox Code Playgroud)

python time-series pandas

2
推荐指数
1
解决办法
175
查看次数

在numpy数组的每一行中获取第一个零的索引数组

我有一个1650行和1275列的numpy数组,包含0和255.我想得到行中每个第一个零的索引并将其存储在一个数组中.我用循环来实现这一点.这是示例代码

#new_arr is a numpy array and k is an empty array 
for i in range(new_arr.shape[0]):
  if not np.all(new_arr[i,:]) == 255:
   x = np.where(new_arr[i,:]==0)[0][0]
   k.append(x)
  else:
   k.append(-1)
Run Code Online (Sandbox Code Playgroud)

1650行需要大约1.3秒.有没有其他方法或函数以更快的方式获取索引数组?

python numpy

1
推荐指数
1
解决办法
833
查看次数

使用正则表达式提取不同格式的日期并对其进行排序 - 熊猫

我是文本挖掘的新手,我需要从*.txt文件中提取日期并对它们进行排序.日期在句子(每一行)之间,其格式可能如下:

04/20/2009; 04/20/09; 4/20/09; 4/3/09
Mar-20-2009; Mar 20, 2009; March 20, 2009; Mar. 20, 2009; Mar 20 2009;
20 Mar 2009; 20 March 2009; 20 Mar. 2009; 20 March, 2009
Mar 20th, 2009; Mar 21st, 2009; Mar 22nd, 2009
Feb 2009; Sep 2009; Oct 2010
6/2008; 12/2009
2009; 2010
Run Code Online (Sandbox Code Playgroud)

如果缺少那一天,请考虑1号,如果缺少月份,请考虑1月份.

我的想法是提取所有日期并将其转换为mm/dd/yyyy格式.但是我对如何找到和替换paterns有点怀疑.这就是我所做的:

import pandas as pd

doc = []
with open('dates.txt') as file:
    for line in file:
        doc.append(line)

df = pd.Series(doc)

df2 = pd.DataFrame(df,columns=['text'])

def myfunc(x):
    if len(x)==4:
        x = '01/01/'+x …
Run Code Online (Sandbox Code Playgroud)

python date text-mining dataframe pandas

1
推荐指数
1
解决办法
3307
查看次数

使用au'和Decimal值解码字符串中的Python json

我需要解码并加载到DB,这是一个以下列格式到达的字符串:

"[{u'date': 1508760000000, u'value': 0}, {u'date': 1509364800000, u'value': Decimal('5.989999771118164')}, {u'date': 1509969600000, u'value': Decimal('5.989999771118164')}, {u'date': 1510574400000, u'value': Decimal('9.579999923706055')}]"
Run Code Online (Sandbox Code Playgroud)

目前,这是我用来将其转换为数据帧的代码:

import pandas as pd
import json

#json for example:
my_json="""[{u'date': 1508760000000, u'value': 0}, {u'date': 1509364800000, u'value': Decimal('5.989999771118164')}, {u'date': 1509969600000, u'value': Decimal('5.989999771118164')}, {u'date': 1510574400000, u'value': Decimal('9.579999923706055')}]"""
my_json=my_json[1:-1]
my_json=my_json.replace("u'","'")
my_json=my_json.replace("'",'"')
my_json=my_json.replace('Decimal("','')
my_json=my_json.replace('")','')
my_json=my_json.replace(', {','~ {')
my_json_list=my_json.split('~')
my_dict_list=[json.loads(row) for row in my_json_list]
df=pd.DataFrame(my_dict_list)
Run Code Online (Sandbox Code Playgroud)

是否有更短/更优雅的方式来执行此操作?

python string json dataframe pandas

1
推荐指数
1
解决办法
380
查看次数

制作许多重复的列并自动重命名

我在Python中使用pandas.

import pandas as pd

假设我有一个数据帧

pd.DataFrame({"A": [1,2,3], "B": [3,2,1]})
Run Code Online (Sandbox Code Playgroud)

我想为每列创建三个副本,并将列命名为A1到A4和B1到B4.期望输出的示例:

pd.DataFrame({"A1": [1,2,3], "A2": [1,2,3], "A3": [1,2,3], "A4": [1,2,3], "B1": [3,2,1], "B2": [3,2,1], "B3": [3,2,1], "B4": [3,2,1]})
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python dataframe pandas

0
推荐指数
1
解决办法
42
查看次数

标签 统计

python ×13

pandas ×10

dataframe ×4

date ×2

numpy ×2

csv ×1

group-by ×1

json ×1

jupyter ×1

mask ×1

nltk ×1

similarity ×1

string ×1

text-mining ×1

time-series ×1