-
2020-12-23 20:56:34
更新:
In [11]: df['ReceiptNumber'] = (df.assign(ReceiptNumber=np.where(pd.notnull(df.Tender),
....: df['Rcpt#'],
....: np.nan))['ReceiptNumber']
....: .fillna(method='pad')
....: .astype(int))
In [12]: df[['Rcpt#','Tender','ReceiptNumber']]
Out[12]:
Rcpt# Tender ReceiptNumber
0 32381 Cash 32381
1 18924 NaN 32381
2 505101 NaN 32381
3 32382 CrCd 32382
4 502201 NaN 32382
5 502201 NaN 32382
6 32383 Cash 32383
7 502201 NaN 32383
8 32384 CrCd 32384
9 505201 NaN 32384
10 505201 NaN 32384
11 32385 Cash 32385
12 18924 NaN 32385
13 32386 Cash 32386
14 18924 NaN 32386
老答案:
df.assign(ReceiptNumber=np.where(pd.notnull(df.Tender),
df['Rcpt#'],
np.nan))['ReceiptNumber']
.fillna(method='pad')
PS这个片段没有经过测试,因为你没有在文本表格中提供你的数据集,所以我无法复制&粘贴它
更多相关内容 -
将一列中的所有值复制到pandas数据框中的新列
2021-07-19 18:08:08解决方案 You can simply assign the B to the new column , Like - df['D'] = df['B'] Example/Demo - In [1]: import pandas as pd In [2]: df = pd.DataFrame([['a.1','b.1','c.1'],['a.2','b.2','c.2'],['a.3',...This is a very basic question, I just can not seem to find an answer.
I have a dataframe like this, called df:
A B C
a.1 b.1 c.1
a.2 b.2 c.2
a.3 b.3 c.3
Then I extract all the rows from df, where column 'B' has a value of 'b.2'. I assign these results to df_2.
df_2 = df[df['B'] == 'b.2']
df_2 becomes:
A B C
a.2 b.2 c.2
Then, I copy all the values in column 'B' to a new column named 'D'. Causing df_2 to become:
A B C D
a.2 b.2 c.2 b.2
When I preform an assignment like this:
df_2['D'] = df_2['B']
I get the following warning:
A value is trying to be set on a copy of a slice from a DataFrame. Try
using .loc[row_indexer,col_indexer] = value instead
I have also tried using .loc when creating df_2 like this:
df_2 = df.loc[df['B'] == 'b.2']
However, I still get the warning.
Any help is greatly appreciated.
解决方案
You can simply assign the B to the new column , Like -
df['D'] = df['B']
Example/Demo -
In [1]: import pandas as pd
In [2]: df = pd.DataFrame([['a.1','b.1','c.1'],['a.2','b.2','c.2'],['a.3','b.3','c.3']],columns=['A','B','C'])
In [3]: df
Out[3]:
A B C
0 a.1 b.1 c.1
1 a.2 b.2 c.2
2 a.3 b.3 c.3
In [4]: df['D'] = df['B'] #
In [5]: df
Out[5]:
A B C D
0 a.1 b.1 c.1 b.1
1 a.2 b.2 c.2 b.2
2 a.3 b.3 c.3 b.3
In [6]: df.loc[0,'D'] = 'd.1'
In [7]: df
Out[7]:
A B C D
0 a.1 b.1 c.1 d.1
1 a.2 b.2 c.2 b.2
2 a.3 b.3 c.3 b.3
-
使用 pandas 添加一列数据
2020-11-27 17:40:35import jqdataimport pandas as pdfrom pandas import DataFrameimport numpy as npsecurity = ['000001.XSHE', '000040.XSHE', '000099.XSHE'];h = get_price(security, start_date='2020-03-26', end_date='2020-0...import jqdata
import pandas as pd
from pandas import DataFrame
import numpy as np
security = ['000001.XSHE', '000040.XSHE', '000099.XSHE'];
h = get_price(security, start_date='2020-03-26', end_date='2020-03-27', frequency='1m', fields=None, skip_paused=False, fq='pre')
h = h.transpose(2,1,0);
date='2020-03-26';
for code in security:
q = query(valuation).filter(valuation.code == code)
c = get_fundamentals(q, date=None, statDate=None)
capita_field = c['circulating_cap'][0]
print(capita_field)
h[code] = DataFrame(h[code])
h[code]['circulating_cap'] = capita_field
print(h[code].head())
for code in security:
print(code)
print(h[code].head())
各种位老师!
我在第一个循环时打印数据,感觉不对,但从遍历的结果看是三组数据中有二组新增一列是成功的。
但是到了第二个循环打印出来的结果却是只有最后一组数据有新增一列数据,结果如下:
复制内容如下:
2020-03-25 00:00:00 - INFO - 1940575.25
2020-03-25 00:00:00 - INFO - close high low money open volume
2020-03-26 09:31:00 12.75 12.78 12.74 21562519 12.78 1689100
2020-03-26 09:32:00 12.79 12.79 12.74 8336756 12.75 653100
2020-03-26 09:33:00 12.80 12.80 12.78 9250124 12.78 723100
2020-03-26 09:34:00 12.80 12.80 12.78 3501228 12.78 273700
2020-03-26 09:35:00 12.82 12.82 12.79 8527458 12.79 665800
circulating_cap
2020-03-26 09:31:00 1940575.25
2020-03-26 09:32:00 1940575.25
2020-03-26 09:33:00 1940575.25
2020-03-26 09:34:00 1940575.25
2020-03-26 09:35:00 1940575.25
2020-03-25 00:00:00 - INFO - 106034.0703
2020-03-25 00:00:00 - INFO - close high low money open volume circulating_cap
2020-03-26 09:31:00 3.54 3.55 3.53 1976123 3.54 558900 106034.0703
2020-03-26 09:32:00 3.53 3.54 3.53 603107 3.53 170800 106034.0703
2020-03-26 09:33:00 3.54 3.54 3.53 461279 3.53 130600 106034.0703
2020-03-26 09:34:00 3.55 3.55 3.53 608014 3.54 171700 106034.0703
2020-03-26 09:35:00 3.55 3.55 3.54 312608 3.55 88200 106034.0703
2020-03-25 00:00:00 - INFO - 60607.043
2020-03-25 00:00:00 - INFO - close high low money open volume circulating_cap
2020-03-26 09:31:00 6.34 6.36 6.33 1521427 6.35 239700 60607.043
2020-03-26 09:32:00 6.35 6.36 6.34 292984 6.34 46100 60607.043
2020-03-26 09:33:00 6.36 6.36 6.35 245919 6.35 38700 60607.043
2020-03-26 09:34:00 6.35 6.36 6.34 346777 6.35 54600 60607.043
2020-03-26 09:35:00 6.38 6.39 6.36 760788 6.36 119300 60607.043
但是到了第二个循环打印出来的结果却是只有最后一组数据有新增一列数据,结果如下:
2020-03-25 00:00:00 - INFO - 000001.XSHE
2020-03-25 00:00:00 - INFO - close high low money open volume
2020-03-26 09:31:00 12.75 12.78 12.74 21562519 12.78 1689100
2020-03-26 09:32:00 12.79 12.79 12.74 8336756 12.75 653100
2020-03-26 09:33:00 12.80 12.80 12.78 9250124 12.78 723100
2020-03-26 09:34:00 12.80 12.80 12.78 3501228 12.78 273700
2020-03-26 09:35:00 12.82 12.82 12.79 8527458 12.79 665800
2020-03-25 00:00:00 - INFO - 000040.XSHE
2020-03-25 00:00:00 - INFO - close high low money open volume
2020-03-26 09:31:00 3.54 3.55 3.53 1976123 3.54 558900
2020-03-26 09:32:00 3.53 3.54 3.53 603107 3.53 170800
2020-03-26 09:33:00 3.54 3.54 3.53 461279 3.53 130600
2020-03-26 09:34:00 3.55 3.55 3.53 608014 3.54 171700
2020-03-26 09:35:00 3.55 3.55 3.54 312608 3.55 88200
2020-03-25 00:00:00 - INFO - 000099.XSHE
2020-03-25 00:00:00 - INFO - close high low money open volume circulating_cap
2020-03-26 09:31:00 6.34 6.36 6.33 1521427 6.35 239700 60607.043
2020-03-26 09:32:00 6.35 6.36 6.34 292984 6.34 46100 60607.043
2020-03-26 09:33:00 6.36 6.36 6.35 245919 6.35 38700 60607.043
2020-03-26 09:34:00 6.35 6.36 6.34 346777 6.35 54600 60607.043
2020-03-26 09:35:00 6.38 6.39 6.36 760788 6.36 119300 60607.043
想不出错误在哪?请各位老师帮助
-
Python Pandas将列从一个工作表复制到另一个工作表而不更改任何数据?
2021-01-28 11:12:11此方法使用pandas和xlsxwriter。在设置(创建演示excel文件):import pandas as pddf1 = pd.DataFrame({'1_A': [1,2,3,4], '1_B': [5,4,6,5],'1_C': [8,7,9,0], '1_D': [9,7,8,5], '1_E': [2,4,9,8]})df2 = pd....此方法使用pandas和xlsxwriter。在
设置(创建演示excel文件):import pandas as pd
df1 = pd.DataFrame({'1_A': [1,2,3,4], '1_B': [5,4,6,5],
'1_C': [8,7,9,0], '1_D': [9,7,8,5], '1_E': [2,4,9,8]})
df2 = pd.DataFrame({'1_A': [5,4,1,3], '1_B': [55,2,3,4]})
setup_dict = {'Sheet_1': df1, 'Sheet_2': df2}
with pd.ExcelWriter('excel_file.xlsx',
engine='xlsxwriter') as writer:
for ws_name, df_sheet in setup_dict.items():
df_sheet.to_excel(writer, sheet_name=ws_name)
(从这里开始读取现有的excel文件)
^{pr2}$
也可以使用其他方法来组合列,例如join(使用表示原始工作表的不同后缀)
因为当excel文件
已读。在
编辑(用于新工作表和唯一列名…)ws_dict = pd.read_excel('excel_file.xlsx', sheetname=None)
#Modify the Sheet_2 worksheet dataframe:
#(or, create a new worksheet by assigning concatenated df to a new key,
#such as ws_dict['Sheet_3'] = ...)
ws_dict['Sheet_3'] = ws_dict['Sheet_2'][['1_A','1_B']].join(ws_dict['Sheet_1'][['1_A','1_B','1_C']],
lsuffix='_sh2', rsuffix='_sh1', how='outer')
#Write the ws_dict back to disk as an excel file:
#(replace 'excel_file.xlsx' with your desired file path.)
with pd.ExcelWriter('excel_file.xlsx',
engine='xlsxwriter') as writer:
for ws_name, df_sheet in ws_dict.items():
df_sheet.to_excel(writer, sheet_name=ws_name)
-
利用pandas将非数值数据转换成数值的方式
2020-09-18 06:35:19今天小编就为大家分享一篇利用pandas将非数值数据转换成数值的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
使用pandas将列从一个数据帧复制到另一个数据帧的最快方法?
2020-12-23 20:56:36使用.loc来设置一个可对齐的帧并没有什么本质上的慢,尽管它确实要经过一些代码来覆盖很多情况,所以可能在一个紧密的循环中是不理想的。仅供参考,本例与第二例略有不同。In [1]: import numpy as npIn [2]: import... -
Pandas DataFrame数据的更改、插入新增的列和行的方法
2020-09-19 06:07:59主要介绍了Pandas DataFrame数据的更改、插入新增的列和行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
使用Pandas将列从一个DataFrame复制到另一个的最快方法?
2021-07-19 18:08:09In [1]: import numpy as np In [2]: import pandas as pd In [3]: from pandas import DataFrame In [4]: df = DataFrame(1.,index=list('abcdefghij'),columns=[0,1,2]) In [5]: df Out[5]: 0 1 2 a 1 1 1 b 1 1 ... -
修改Pandas的行或列的名字(重命名)
2020-09-18 06:58:03主要介绍了修改Pandas的行或列的名字(重命名),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
pandas之dataframe移动复制删除列
2018-06-19 17:28:16pandas的DataFrame非常灵活,我们可以快速的移动、复制、删除列,今天就用案例来说明一下具体的工作是如何完成的。 首先我们创建一个dataframe 打印一下: 增加列,我们可以把df当作...永久删除一列数据用del... -
【excel】怎么用宏将一个表格的某一列复制到另一个表格中去啊?
2020-12-23 20:55:47展开全部【excel】怎么用宏将一个表格的某一列复制到另一个表格中去的方法。如下参考e69da5e6ba903231313335323631343130323136353331333433626561:1.Excel选项点击常用,勾选功能区显示开发工具,可以在Excel选项... -
Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法
2020-12-23 20:56:31mysql复制表中的一列到另一个表中有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写:UPDATE tb_1 SET content_target = content_source;大概写法如下:Update {your_table} ... -
根据某列的值复制 Pandas DataFrame 上的行
2022-07-19 15:02:51pandas -
Pandas如何指定某一列作为索引
2022-02-24 12:01:50# 以商品名称这一列作为索引 df1 = df.set_index('商品名称') # 有时候数据没有表头,即发生了缺失: # 指定第一列为索引 df1 = pd.read_excel(df,index_col=0) -
pandas打印某一列_Python进阶之Pandas入门(一) 介绍和核心
2020-11-20 09:45:49导语Pandas是数据分析中一个至关重要的库,它是大多数据项目的支柱。如果你想从事数据分析相关的职业,那么你要做的第一件事情就是学习Pandas。通过这一课,您将会:1、对Pandas有一个全面的认识;2、学会安装和导入... -
pandas打印某一列_Pandas-01之DataFrame&Series
2020-11-20 01:35:28本文详细介绍Pandas数据结构DataFrame和Series的常用方法。欢迎微信随缘关注@pythonic生物人本文可以学到什么?1、pandas简介 2、pandas数据结构之-Series pandas.Series快速创建 pandas.Series取出所有值:values ... -
pandas 索引与列相互转化
2022-05-19 14:12:18pandas 索引与列相互转化 -
pandas 处理csv的列数据
2022-04-05 14:47:59做一个很简单的功能,计算显示hit列数字之和,即80=20+20+25+15. 解决方法: Step1: 新建一个test.txt, 将下面内容复制到test.txt,然后重命名为test.csv. ,datetime,host,hit,volume 0,2018/7/24,weibo.com,20,... -
python – Pandas将列列分成多列
2020-12-03 19:17:02您可以将DataFrame构造函数与通过values转换为numpy数组创建的列表一起使用tolist:import pandas as pdd1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['... -
【Pandas】DataFrame只复制其中的某一行为多次
2021-03-29 19:47:12import pandas as pd df = pd.DataFrame(data={ 'id': ['1', '2', '3'], 'col1' : [ 5, 6, 7], 'col2' : [ 10, 13, 8] }) print(df) # 1表示复制第2行 temp_df = df.iloc[1] # 复制的次数 for t in range(5): ... -
如何利用Pandas,将一个文件的某列值根据另一个文件对应列名进行重新赋值?
2021-01-16 22:13:49慕哥9229398为提升性能,应减少pandas.DataFrame.apply()的逐行操作,在本例中可改用numpy.where()二元操作符,如下In[1]:importpandasaspdIn[2]:importnumpyasnpIn[3]:df1=pd.DataFrame({'t':[1,2,3],'user_id':[10... -
pandas 取excel 中的某一列_当Python遇到Excel……
2020-11-20 01:21:26全文共1370字,预计学习时长7分钟图源:realpython几乎人人都在用Excel,这种极易上手的数据分析工具无处不在,一旦你掌握了窍门,它就变得非常强大。而Python通常被认为更具有挑战性,但能做的事也更多。当Python... -
Pandas实战教程 | 统一替换某列中的值 .replace()
2022-03-26 14:55:02运行环境:python3 作者:K同学啊 精选专栏:《深度学习...data_2 = data.copy(deep=True) # 进行深度复制 data_2["SEX"] = data_2["SEX"].replace([1,2],["男","女"]) data_2["EDUCATION"] = data_2["EDUCATION"]. -
pandas列反转
2021-07-08 17:48:30python处理表格时,常常会有需要反转列的情况。...将原表格复制一份: 这一步不是必须的,但还是建议在副本上操作,防止操作失误污染原表格 new=data.copy(deep=True) #参数deep=True不影响原表格 使用iloc方法获取每 -
pandas中对列进行上下平移(shift)
2018-09-18 10:38:23在利用Python进行数据操作时,有时需要对数据某列数据进行上下平移,比如对某一列进行错位加减,pandas里的groupby和shift两个函数就能轻松实现上述操作。 df = pd.DataFrame({"name":["a",&... -
python dataframe的某一列变为list_Pandas某一列是列表,怎么展开呢?
2020-11-21 22:43:27翻起了之前遇到的一个奇怪的需求,具体细节记不得了,只记得小姐姐当时一脸严肃的说,我这儿有一堆数据,某一列可能是列表,你把他们展开,一会儿给我。当时我还一脸懵逼,回味了很久才大致知道她啥意思。大概就是... -
Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数、复制到Excel文件、复制到...
2021-11-07 20:43:07Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数、复制到Excel文件、复制到文本文件(默认是tsv格式)、复制到文本文件(设置逗号分隔符) 目录 Python中将pandas的dataframe拷贝到... -
Pandas-获取给定列的第一行值
2020-12-21 12:50:51要选择ith行,use ^{}:In [31]: df_test.iloc[0]Out[31]:ATime 1.2X 2.0Y 15.0Z 2.0Btime 1.2C 12.0D 25.0E 12.0Name: 0, dtype: float64要选择Btime列中的第i个值,可以使用:In [... -
pandas基础这一篇足以,看完即成初级数据分析师
2020-12-21 07:49:54小弟的目录1.1Pandas概述:1.2Pandas的数据结构分析SeriesSeries的介绍Series对象的创建DataFrameDataFrame的介绍:DataFrame对象的创建:重置索引reindex参数说明1.3索引操作Series类型的索引操作DataFrame的索引操作...