- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是来自另一个 question 的一些数据:
positive negative neutral
1 [marvel, moral, bold, destiny] [] [view, should]
2 [beautiful] [complicated, need] []
3 [celebrate] [crippling, addiction] [big]
我首先要做的是在所有单词上添加引号,然后:
import ast
df = pd.read_clipboard(sep='\s{2,}')
df = df.applymap(ast.literal_eval)
有没有更聪明的方法来做到这一点?
最佳答案
对于基本结构,您可以使用 yaml无需添加引号:
import yaml
df = pd.read_clipboard(sep='\s{2,}').applymap(yaml.load)
type(df.iloc[0, 0])
Out: list
在某些情况下,您可以将列表读取为字符串并使用 literal_eval
(或 pd.eval
,如果它们是简单列表)将它们转换。
例如,
A B
0 [1, 2, 3] 11
1 [4, 5, 6] 12
首先,确保列之间至少有两个空格,然后复制数据并运行以下命令:
import ast
df = pd.read_clipboard(sep=r'\s{2,}', engine='python')
df['A'] = df['A'].map(ast.literal_eval)
df
A B
0 [1, 2, 3] 11
1 [4, 5, 6] 12
df.dtypes
A object
B int64
dtype: object
Notes
for multiple columns, use
applymap
in the conversion step:df[['A', 'B', ...]] = df[['A', 'B', ...]].applymap(ast.literal_eval)
if your columns can contain NaNs, define a function that can handle them appropriately:
parser = lambda x: x if pd.isna(x) else ast.literal_eval(x)
df[['A', 'B', ...]] = df[['A', 'B', ...]].applymap(parser)if your columns contain lists of strings, you will need something like
yaml.load
(requires installation) to parse them instead if you don't want to manually addquotes to the data. See above.
关于python - 您如何使用 pd.read_clipboard 读取带有列表的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45827372/
(请注意这里有一个问题 Pandas: group by and Pivot table difference ,但是这个问题是不同的。) 假设您从一个 DataFrame 开始 df = pd.Da
我在Windows 10上安装了Anaconda 3。我正在使用pd.read_csv()加载CSV文件,但收到错误消息。首先,我尝试了df=pd.read_csv(‘C:\Direct_market
我的输入数据是以下形式: gold,Program,MethodType,CallersT,CallersN,CallersU,CallersCallersT,CallersCallersN,
是否可以使用pd.merge复制以下内容 a = pd.DataFrame(dict(x=[1,2], y=[5,5])) b = pd.DataFrame(dict(x=[7,7], y=[12,1
我有一个像这样保存的数据框: Y_train_1.head() 0 4691.0 1 4661.0 2 4631.0 3 4601.0 4 4571.0 Y_train_
我有一个如下所示的 Excel 文件: CompanyName High Priority QualityIssue Customer1 Yes
题 为什么排序使用 pd.Series.sort_index使用分类索引时似乎不起作用?如何使用字母/数字以外的其他排序顺序对多索引 pd.Series 的索引进行排序? 移动电源 设置代码 impo
tt = pd.DataFrame({'a':[1,2,None,3],'b':[None,3,4,5]}) bb=pd.DataFrame(pd.isnull(tt).astype(int), in
示例代码: import pandas as pd import numpy as np sample = pd.DataFrame({"a":[1,2,3,1,2,3,1,2,3], "b":np.
我有一个 Pandas 系列和一个 Pandas 多索引数据框。 下面是一个简单的例子: iterables = [['milk', 'honey', 'dates'], ['jan', 'feb',
我拥有的: pd.Timestamp('2021-07-05 08:10:11') pd.Timestamp('2021-07-07 12:13:14') 我在找什么: [pd.Timestamp('
在使用 pandas 时,我遇到了创建新 data-Frame 的两种最常见的方法。使用pandas如下; 1. pandas.read_csv() Type: 2. pandas.DataFram
伙计们,我有一个Dataframe df= pd.DataFrame({'Point_ID':[1,2,3,1,2,1] , 'Shape_ID': [84,85,86,87,88,89],'LOL'
在 pandas datetimeindex 中,dayofweek和 weekday似乎是一样的。他们只是彼此的别名吗?我发现了这些功能 here 最佳答案 根据pandas源码定义的Datetim
我正在尝试按另一个按特定顺序排序的系列对 DataFrame (axis = 0) 进行排序。 例子:DataFrame 包含 CountryCodes 的索引:'AUS'、'BWA' ....(按字
我正在尝试使用 dask 读取 csv 文件,它给了我如下错误。但问题是我想要我的 ARTICLE_ID是 object(string) .谁能帮我成功读取数据? 回溯如下: ValueError:
为什么 pandas 有两个用于箱线图的函数:pandas.DataFrame.plot.box() 和 pandas.DataFrame.boxplot()? df = pd.DataFrame(n
我有一个多索引系列,如下所示。 > data = [['a', 'X', 'u', 1], ['a', 'X', 'v', 2], ['b', 'Y', 'u', 4], ['a', 'Z', 'u'
这个问题在这里已经有了答案: Inconsistency when setting figure size using pandas plot method (2 个答案) 关闭 4 年前。 在下面
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 6 年前。 Improve t
我是一名优秀的程序员,十分优秀!